你能幫我理解爲什麼這段代碼會導致重複條目(IntegrityError)嗎?Django - get_or_create不起作用
我在Django 1.2上。
(row, is_new) = MyModel.objects.get_or_create(field1=1)
row.other_field = 2
row.save()
我對field1有一個唯一的約束。如果有一行where field1 = 1,一切正常,Django做了一個「get」。
如果沒有一行where 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這是一個外鍵。
確實爲MyModel有洋場?你可以發佈MyModel的代碼嗎? –
[This similar question](http://stackoverflow.com/questions/6974463/django-get-or-create-raises-duplicate-entry-with-together-unique)可能會幫助你。 – agf
@agf。我不明白在這個問題上的決議是什麼,或者這個問題是如何合理的。這聽起來像是一個bug。我想我會放棄get_or_create並做一些工作:-( – Greg