Сериализатор для рекурсивного комментария в Django

models.py

class Comments(models.Model):
    content = models.CharField(max_length=500)
    sub_comment_id = models.ForeignKey('self', related_name='sub_comments', null=True, blank=True,
                                       on_delete=models.CASCADE)

    author_id = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='user_comments', on_delete=models.CASCADE)
    article_id = models.ForeignKey(Article, related_name='article_comments', on_delete=models.CASCADE)

    like = models.IntegerField(default=0)
    dislike = models.IntegerField(default=0)

    is_sub = models.BooleanField(default=False)

    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    objects = models.Manager()

    def __str__(self):
        return self.content

что я могу сделать для отображения всех рекурсивных комментариев в сериализаторе комментариев?

я использую django rest framework-recursive, но он не работает

Я никогда не пробовал что-то подобное, но не вижу причин, почему это не сработает

CommentSerializer(serializers.Serializer):
   content = serializers.CharField()
   ...
   sub_comments = serializers.SerializerMethodField()

   def get_sub_comments(self, comment):
      return self.__class__(comment.sub_comments.all(), many=True).data
    
Вернуться на верх