From 8faf86c0bada6f1256d0c636d1a22ce72f3eb754 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Sun, 18 Oct 2020 15:45:56 +0200 Subject: [PATCH] Make tags user-specific (DRF does not filter nested serializers) --- apimail/api/serializers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apimail/api/serializers.py b/apimail/api/serializers.py index c3c7a9cba..115a3dc09 100644 --- a/apimail/api/serializers.py +++ b/apimail/api/serializers.py @@ -118,7 +118,7 @@ class UserTagSerializer(serializers.ModelSerializer): fields = ['pk', 'user', 'label', 'unicode_symbol', 'variant'] def get_queryset(self): - user = self.request.user + user = self.context['request'].user return UserTag.objects.filter(user=user) @@ -126,11 +126,17 @@ class StoredMessageSerializer(serializers.ModelSerializer): attachment_files = AttachmentFileSerializer(many=True) event_set = EventSerializer(many=True) read = serializers.SerializerMethodField() - tags = UserTagSerializer(many=True) + tags = serializers.SerializerMethodField() def get_read(self, obj): return self.context['request'].user in obj.read_by.all() + def get_tags(self, obj): + return UserTagSerializer( + obj.tags.filter(user=self.context['request'].user), + many=True + ).data + class Meta: model = StoredMessage fields = ['uuid', 'data', 'datetimestamp', 'attachment_files', 'event_set', 'read', 'tags'] -- GitLab