Прямое назначение на обратную сторону связанного набора запрещено. Используйте 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
Вернуться на верх