【问题标题】:Django Rest How to show all related foreignkey object?Django Rest 如何显示所有相关的外键对象?
【发布时间】:2022-11-27 13:26:38
【问题描述】:

我有一个博客网站,访问者也可以对我的博客文章发表评论。每篇博文都有多条评论,我想在我的每篇博文下显示这些评论单个博客文章.认为博客1有 10 条评论,所以所有 10 条评论都将显示在博客1

这是我的代码:

模型.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)

序列化器.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'}
        }

意见.py:

class BlogViewSet(viewsets.ModelViewSet):
    queryset = Blog.objects.all().order_by('-id')
    serializer_class = BlogSerializer
    pagination_class = BlogPagination
    lookup_field = 'blog_slug'

【问题讨论】:

    标签: python python-3.x django django-rest-framework


    【解决方案1】:

    您可以使用 comment_set 属性从博客对象访问 cmets 列表,因此将 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'}
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-21
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 2017-11-26
      • 1970-01-01
      • 2021-10-29
      相关资源
      最近更新 更多