Прямое назначение на обратную сторону связанного набора запрещено. Используйте images.set() вместо этого при использовании create()
Я создаю простое приложение для блога изображений, И я создаю две модели и одну с Parent ForeignKey.
Я создал serializer, но когда я пытаюсь создать новый экземпляр, он продолжает показывать мне
Прямое назначение на обратную сторону связанного набора запрещено. Вместо этого используйте images.set().
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)
serializer.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):
return Gallery.objects.create(**validated_data)
<
def create(self, validated_data):
new_data = Gallery.objects.create(poll=1, images=validated_data["images"])
return new_data
Но он также показал мне ту же ошибку, что и раньше.
Еще одна вещь, validated_data не показывает id, когда я использую print
Я новичок в Django-Rest-Framework, я пробовал много раз, но он все еще не создается.
Любая помощь будет очень признательна. Заранее спасибо
Ошибка подскажет вам, что именно нужно делать. Предполагая, что validated_data['images'] является итерабельным множеством Image объектов:
def create(self, validated_data):
new_data = Gallery.objects.create(poll=1)
new_data.images.set(validated_data['images'])
return new_data