Фильтр вложенного поля модели сериализатора (исключение конкретного поля)
 Я новичок в Django и пытаюсь exclude поле модели во вложенном сериализаторе.
modals.py
class Blog(models.Model):
    title = models.CharField(max_length=30)
    description = models.CharField(max_length=30)
class Comment(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name="comment")
    comment_bdy = models.CharField(max_length=30)
    completed = models.BooleanField(default=False)
serializers.py
class BlogCommentSerializer(serializers.ModelSerializer):
    class Meta:
        model = Comment
        fields = ("id", "comment_body")
class BlogSerializer(serializers.ModelSerializer):
    comment = BlogCommentSerializer(many=True)
    
    class Meta:
        model = ("id", "title", "description", "comment",)
 Я пытаюсь исключить comment, которые имеют completed=True .
Я пробовал много раз, как :-
class BlogCommentSerializer(serializers.ModelSerializer):
    def to_representation(self, data):
        data = data.filter(completed=False)
        return super(BlogCommentSerializer, self).to_representation(data)
Но он показывает:
AttributeError: объект 'CommentReply' не имеет атрибута 'filter'
Затем я попробовал использовать:
class BlogSerializer(serializers.ModelSerializer):
    def get_comment(self, instance):
        comment_instance = instance.comment_set.exclude(completed=True)
        return BlogSerializer(comment_instance , many=True).data
Это также не сработало.
Что я пытаюсь сделать
 Я пытаюсь исключить комментарии, которые являются completed=True
Вы можете попробовать следующим образом, используя SerializerMethodField:
class BlogSerializer(serializers.ModelSerializer):
    comment = serializers.SerializerMethodField()
    def get_comment(self, instance):
        comment_instances = instance.comment.exclude(completed=True)
        return BlogCommentSerializer(comment_instances , many=True).data
                    Попробуйте:
class BlogSerializer(serializers.ModelSerializer):
    comment = serializers.SerializerMethodField()
    def get_comment(self, obj):
        queryset = Comment.objects.
            filter(blog=obj).exclude(blog__completed=True)
        return [BlogCommentSerializer(q).data for q in queryset]