在查询集Django中选择一对多关系表

问题描述 投票:0回答:1

我想在查询集中选择一对多表关系。我有两个模型。

class Post(models.Model):
    postid = models.AutoField(primary_key=True)

    class Meta:
        db_table = 'post'

class Images(models.Model):
    postid = models.ForeignKey(Post,on_delete=models.CASCADE)
    image = models.ImageField(upload_to=upload_image_to, blank=True)

在帖子listviewset方法中,我想选择类似=>的格式

          {
            "postid": 1,
            "images":[
                image:"Image Result"
            ]
          }

这里是帖子viewset =>

def list(self, request):
        queryset = self.queryset
        page = self.paginate_queryset(queryset)

        for post in self.queryset:
            img = Images.objects.all().filter(postid=post.postid)

        serializer = PostSerializer(page, many=True)
        return self.get_paginated_response(serializer.data)

如何插入此img结果以发布?

django-rest-framework one-to-many django-rest-viewsets
1个回答
0
投票

请看RelatedField文档。类似于:

class PostSerializer(serializers.ModelSerializer):
    images = serializers.StringRelatedField(many=True)

    class Meta:
        model = Post
        fields = ['postid', 'images']

这将为您提供图像的字符串表示形式,但是您可以查看文档中的其他“关系”字段以自定义图像的JSON表示形式。

执行此操作可能意味着您也不需要在视图集中覆盖list()

© www.soinside.com 2019 - 2024. All rights reserved.