我想在查询集中选择一对多表关系。我有两个模型。
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)
在帖子list
的viewset
方法中,我想选择类似=>的格式
{
"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结果以发布?
请看RelatedField文档。类似于:
class PostSerializer(serializers.ModelSerializer):
images = serializers.StringRelatedField(many=True)
class Meta:
model = Post
fields = ['postid', 'images']
这将为您提供图像的字符串表示形式,但是您可以查看文档中的其他“关系”字段以自定义图像的JSON表示形式。
执行此操作可能意味着您也不需要在视图集中覆盖list()
。