首页 > 解决方案 > django-rest-framework 中的嵌套注释

问题描述

我尝试对帖子进行嵌套评论,但出现此错误:“列 news_comment.parent_id 不存在”。我该如何解决这个问题或任何其他实现?

序列化程序.py

        class CommentSerializer(serializers.ModelSerializer):
              replys = serializers.SerializerMethodField()

              def get_replys(self, obj):
                    queryset = Comment.objects.filter(parent_id=obj.id)
                    serializer = CommentSerializer(queryset, many=True)
                    return serializer.data

              class Meta:
                model = Comment
                fields = '__all__'
        class PostListSerializer(serializers.ModelSerializer):
                comments = serializers.SerializerMethodField()

                def get_comments(self, obj):
                    queryset = Comment.objects.filter(post_id=obj.id, parent_id=None)
                    serializer = CommentSerializer(queryset, many=True)
                    return serializer.data

                class Meta:
                    model = Post
                    fields = '__all__'

模型.py

        class Comment(models.Model):
            post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
            parent = models.ForeignKey(
              'self',
              default=None,
              blank=True,
              null=True,
              on_delete=models.CASCADE,
              verbose_name='parent',
              related_name='replys'
            )
            text = models.TextField(max_length=1500)
            date = models.DateTimeField(auto_now=True)
            username = models.CharField(max_length=50)
            user = models.ForeignKey(User, on_delete=models.CASCADE)

标签: djangodjango-modelsdjango-rest-frameworkdjango-viewsdjango-serializer

解决方案


推荐阅读