[英]Django Rest How to show all related foreignkey object?
I have an blog website and my visitors can also comment on my blog posts.我有一个博客网站,访问者也可以对我的博客文章发表评论。 Each blog post have multiple comment and I want to show those comment under my each single blog post .每篇博文都有多条评论,我想在每篇博文下显示这些评论。 Assume Blog1 have 10 comment so all 10 comment will be show under Blog1假设Blog1有 10 条评论,那么所有 10 条评论都将显示在Blog1下
here is my code:这是我的代码:
models.py模型.py
class Blog(models.Model):
blog_title = models.CharField(max_length=200, unique=True)
class Comment(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(max_length=100)
comment = models.TextField()
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
Serializer.py序列化器.py
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = Comment
fields = '__all__'
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
exclude = ("author", "blog_is_published")
lookup_field = 'blog_slug'
extra_kwargs = {
'url': {'lookup_field': 'blog_slug'}
}
views.py:意见.py:
class BlogViewSet(viewsets.ModelViewSet):
queryset = Blog.objects.all().order_by('-id')
serializer_class = BlogSerializer
pagination_class = BlogPagination
lookup_field = 'blog_slug'
You can access comments list from blog object using comment_set
attribute, so add comment_set
field to your serializer:您可以使用comment_set
属性从博客 object 访问评论列表,因此将comment_set
字段添加到您的序列化程序:
class BlogSerializer(serializers.ModelSerializer):
comment_set = CommentSerializer(many=True)
class Meta:
model = Blog
exclude = ("author", "blog_is_published")
lookup_field = 'blog_slug'
extra_kwargs = {
'url': {'lookup_field': 'blog_slug'}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.