【发布时间】:2023-01-10 17:34:28
【问题描述】:
模型.py
class Cat_Breed_Detail(models.Model):
id = models.AutoField(primary_key=True,verbose_name="id")
key_name = models.CharField(max_length=35,default='',null=True,verbose_name="key_name")
display_name= models.CharField(max_length=35,default='',null=True,verbose_name="display_name")
def __str__(self):
return self.key_name
class Cat_Image(models.Model):
image=models.ImageField(upload_to="ImagesCat/")
cat=models.ForeignKey(Cat_Breed_Detail,on_delete=models.CASCADE,null=True,related_name='images')
def image_preview(self):
if self.image:
return mark_safe('<img src="{0}" width="150" height="150" />'.format(self.image.url))
else:
return '(No image)'
序列化器.py
class CatImageSerializer(serializers.ModelSerializer):
class Meta:
model = Cat_Image
fields = '__all__'
class CatDataSerializer(serializers.ModelSerializer):
class Meta:
model = Cat_Breed_Detail
fields = ['id','key_name','display_name','images']
查看.py
class CatListCreate(ListAPIView):
queryset = CatBreedDetails.objects.all().order_by('key_name')
serializer_class = CatDataSerializer
pagination_class = CustomPagination
响应我到了这里我得到了嵌套的响应我不想要它我只想要图像中的图像 url 作为列表而不像我目前得到的响应:
{
"id": 9,
"key_name": "abyssinian",
"display_name": "Abyssinian",
"image": [
{
"id": 3,
"image": "/media/Abyssinian_0006.jpg",
"cat": 9
},
{
"id": 4,
"image": "/media/Abyssinian_0092.jpg",
"cat": 9
}
]
},
{
"id": 18,
"key_name": "american_bobtail",
"display_name": "American Bobtail",
"image": [
{
"id": 5,
"image": "/media/American_Bobtail_0004.jpg",
"cat": 18
},
{
"id": 6,
"image": "/media/American_Bobtail_0057.png",
"cat": 18
}
]
},
{
"id": 19,
"key_name": "american_curl",
"display_name": "American Curl",
"image": [
{
"id": 7,
"image": "/media/American_Curl_0078.jpg",
"cat": 19
},
{
"id": 8,
"image": "/media/American_Curl_0083.png",
"cat": 19
}
]
}
我想在一个列表中获取所有图像,而不是像 image:{image:"...." ,image:"......"} 我是 djnago 的新手,仍在学习是否有任何方法可以完成它。 有什么办法可以让我得到这样的回应:
{
"id": 9,
"key_name": "abyssinian",
"display_name": "Abyssinian",
"image": ["/media/Abyssinian_0006.jpg","/media/Abyssinian_0092.jpg",]
}
【问题讨论】:
-
你能分享你的 views.py 文件吗?所以我可以建议你如何获取列表中的所有图像
-
是的,我将其添加到我的问题中。请检查一下,这对我很有帮助,非常感谢。
标签: python python-3.x django django-models django-rest-framework