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 будет создана для вашего отношения). Удачного кодирования.