#django #api #django-rest-framework #django-serializer
#django #API #django-rest-framework #django-сериализатор
Вопрос:
как мне получить ответ галереи, как показано ниже. Теперь galleryserializer возвращает ответ с массивом изображений только с идентификаторами. Я не могу получить подробную информацию об изображениях.
ответ 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__'
Ответ №1:
Используйте вложенную сериализацию
class GallerySerializer(serializers.ModelSerializer):
images = GalleryImageSerializer(many=True)
class Meta:
model = Gallery
fields = '__all__'
Комментарии:
1. Теперь я получил ошибку. Параметр исключения должен быть списком или кортежем. Получил str.
2. изменить
exclude = '__all__'
наfields = '__all__'