Ожидался экземпляр 'Image', получен OrderedDict([('text', 'First Image'), ('gallery', <Gallery: First Gallery>)])
Я создаю простое приложение галереи изображений и использую django-rest-framework.
Я сохраняю два экземпляра модели, которые я отображаю как ответ nested, а также сохраняю через
nested json.
Но когда я нажимаю на Post из api admin, он показывает
Ожидался экземпляр 'Image', получен OrderedDict([('text', 'First Image'), ('gallery', <Gallery: First Gallery>)]))
Я думаю, что проблема в функции create(). Я также пробовал модифицировать ее, но она по-прежнему
не работает и показывает ту же ошибку.
models.py
class Gallery(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=300)
class Image(models.Model):
gallery = models.ForeignKey(Gallery, on_delete=models.CASCADE, related_name="images")
text = models.CharField(max_length=300)
serializers.py
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = "__all__"
class GallerySerializer(serializers.ModelSerializer):
images = ImageSerializer(many=True)
class Meta:
model = Gallery
fields = "__all__"
def create(self, validated_data):
created = Gallery.objects.create(poll=1)
created.images.set(validated_data['images'])
return created
мой ответ, который я сохраняю
{
title: "First Gallery",
images : [
{
"gallery": 1,
"text": "First Image"
}
]
}
И когда я печатаю validated_data как :-:
print(validated_data['images'])
тогда он показывает
[OrderedDict([('text', 'First Image'), ('gallery', <Gallery: First Gallery>)]), OrderedDict([('text', 'Second Image'), ('gallery', <Gallery: First Gallery>)]), OrderedDict([('text', 'Third Image'), ('gallery', <Gallery: First Gallery>)]), OrderedDict([('text', 'Fourth Image'), ('gallery', <Gallery: First Gallery>)])]
.
Я только начал учиться django-rest-framework
Любая помощь будет очень признательна. Thank You in Advance.