Таблица перехода, ссылающаяся на несуществующую сущность
У меня есть следующие модели в django
class WorkSession(models.Model):
pass
class Invoice(models.Model):
work_sessions = models.ManyToManyField(WorkSession, blank=True)
Я заметил, что когда я делаю следующее:
invoice = Invoice()
session = WorkSession(a=a, b=b)
invoiceo.work_sessions.set([session])
В таблице перекрестка invoice_worksession появляется отношение, хотя я еще не сохранил счет. Это означает, что в таблице invoices нет строки, но в таблице junction есть строка, которая ссылается на счет, который еще не существует. Это нормально?
Потому что это вызывает ошибку целостности при разрушении приспособления, так как счет не существует, но есть ссылка на идентификатор счета в таблице соединений
Вам нужно сначала сохранить объекты в базе данных так, чтобы они имели первичный ключ, поэтому:
invoice = Invoice.objects.create()
session = WorkSession.objects.create(a=a, b=b)
invoice.work_sessions.add(session)