Django: Модель должна иметь значение для поля "id", прежде чем можно будет использовать это отношение "многие-ко-многим

Я пытаюсь создать новую модель2 всякий раз, когда создается новая модель1, и связать эти две модели. Модель2 имеет отношения многие-ко-многим с моделью1

@admin.register(model1)
class model1Admin(admin.ModelAdmin):

    def save_model(self, request, obj, form, change):
        if not obj.id:
            obj.payments.add(model2.objects.create())
        super().save_model(request, obj, form, change)

После попытки использования приведенного выше кода я получаю эту ошибку: needs to have a value for field "id" before this many-to-many relationship can be used

Я думаю, что сообщение об ошибке здесь понятно: Вы пытаетесь добавить отношение manyTomany (которое, кстати, создаст запись в специальной таблице, где будут управляться связи между model1 и model2) к model1, но model1 еще не существует в базе данных, поэтому в специальной таблице manyTomany не может быть создана запись, поэтому возникает эта ошибка.

Чтобы избавиться от этого, вы должны сначала создать obj1 (вызвав метод save()), затем создать obj2, а затем вызвать метод add(), чтобы связать их вместе (это специальная запись в таблице manyTomany будет создана для вашего отношения). Удачного кодирования.

Вернуться на верх