多对多字段中的Django反向关系
Django reverse relationship in many-to-many field
我如何获得像下面这样的画廊回复。现在,galleryserializer returns 响应仅包含 id 的图像数组。我无法获取图像的详细信息。
json 回复:
{
"name": "New Gallery",
"images": [
{
id: 1,
image: 'url/path/to/image',
alt_text: 'alt'
},
{
id: 2,
image: 'url/path/to/image1',
alt_text: 'alt'
},
]
}
我的models.py文件:
class GalleryImage(models.Model):
image = models.ImageField(upload_to='gallery/')
alt_text = models.CharField(max_length=300)
created = models.DateTimeField(auto_now_add=True)
class Gallery(models.Model):
name = models.CharField(max_length=30)
slug = AutoSlugField(populate_from='name', unique_with='id')
images = models.ManyToManyField(GalleryImage, related_name="galleryimages")
created = models.DateTimeField(auto_now_add=True)
我的serializers.py文件:
class GalleryImageSerializer(serializers.ModelSerializer):
class Meta:
model = GalleryImage
exclude = '__all__'
class GallerySerializer(serializers.ModelSerializer):
class Meta:
model = Gallery
fields = '__all__'
使用嵌套序列化
class GallerySerializer(serializers.ModelSerializer):
<b>images = GalleryImageSerializer(many=True)</b>
class Meta:
model = Gallery
fields = '__all__'
我如何获得像下面这样的画廊回复。现在,galleryserializer returns 响应仅包含 id 的图像数组。我无法获取图像的详细信息。
json 回复:
{
"name": "New Gallery",
"images": [
{
id: 1,
image: 'url/path/to/image',
alt_text: 'alt'
},
{
id: 2,
image: 'url/path/to/image1',
alt_text: 'alt'
},
]
}
我的models.py文件:
class GalleryImage(models.Model):
image = models.ImageField(upload_to='gallery/')
alt_text = models.CharField(max_length=300)
created = models.DateTimeField(auto_now_add=True)
class Gallery(models.Model):
name = models.CharField(max_length=30)
slug = AutoSlugField(populate_from='name', unique_with='id')
images = models.ManyToManyField(GalleryImage, related_name="galleryimages")
created = models.DateTimeField(auto_now_add=True)
我的serializers.py文件:
class GalleryImageSerializer(serializers.ModelSerializer):
class Meta:
model = GalleryImage
exclude = '__all__'
class GallerySerializer(serializers.ModelSerializer):
class Meta:
model = Gallery
fields = '__all__'
使用嵌套序列化
class GallerySerializer(serializers.ModelSerializer):
<b>images = GalleryImageSerializer(many=True)</b>
class Meta:
model = Gallery
fields = '__all__'