Можете ли вы помочь мне понять, почему этот код вызывает повторяющуюся запись (IntegrityError)?
Я на Django 1.2.
(row, is_new) = MyModel.objects.get_or_create(field1=1)
row.other_field = 2
row.save()
У меня есть уникальное ограничение на field1. Если есть строка, где field1 = 1, все работает нормально, Django выполняет команду «get».
Если нет строки, где field1 = 1, похоже, что Django создает эту строку, и это нормально. Но почему это не позволяет мне сохранить его?
Обновление:
Если это поможет, вот моя модель:
class MyModel(models.Model):
id = models.BigIntegerField(primary_key=True)
field1 = models.BigIntegerField(unique=True)
other_field = models.CharField(max_length=765)
class Meta:
db_table = u'project_crosses_suppl_FO'
field1 - это внешний ключ для другой таблицы. Но я не делал модель в Django для этой таблицы, поэтому я не говорю Django, что это внешний ключ.