Django - get_or_create не работает

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

6
задан Greg 17 August 2011 в 18:21
поделиться