你能帮我理解为什么这段代码会导致重复条目(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