Сериализатор для рекурсивного комментария в 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