django - 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)
解决方案
推荐阅读
- java - 检查一个项目是否是一个特定的 ArrayList,而不是一个具有相等值的项目
- laravel - 如何加载与 { json:api } 客户端的关系?
- .net - WireMock 中 STARTED 的 .NET 等价物是什么?
- python - Plotly:如何使用 updatemenus 更新一个特定的跟踪?
- c# - Xamarin.Forms StackLayout 分为 3 列
- c - 调试器在哪里保存指向代码段中下一个命令的指针?
- json - OpenApi 是否有通用文件规范?
- java - 如果后端是 URL,则从客户端到后端的 API 流
- javascript - 使用 openfire 运行 converse 问题
- c++ - 访问所有点的最短时间:了解