Задать вопрос
@penekopasen

Как можно реализовать вложенные комментарии в django?

Пытаюсь сделать вложенные комментарии к постам через django-rest-framework, но при выводе постов выдает ошибку: "столбец news_comment.parent_id не существует". Сделать миграцию не помогает. Как решить эту проблему или, возможно, стоит сделать все иначе?

# serializers.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__'

#models.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)
  • Вопрос задан
  • 302 просмотра
Подписаться 3 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы