Вы можете помочь мне понять, почему этот код вызывает повторяющуюся запись (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 создает эту строку, и это нормально. Но почему он не позволяет мне его сохранить?
Обновление:
Если это поможет, вот MyModel:
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, что это внешний ключ.