【发布时间】:2011-08-17 18:13:26
【问题描述】:
你能帮我理解为什么这段代码会导致重复条目(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 这是一个外键。
【问题讨论】:
-
MyModel 有外域吗?可以发一下 MyModel 的代码吗?
-
This similar question 可能会对您有所帮助。
-
@agf。我不明白那个问题的解决方案是什么,或者这个问题是如何合理的。这对我来说听起来像是一个错误。我想我会放弃 get_or_create 并解决问题:-(
-
您可以将字符域设置为整数吗?这行得通吗?
标签: python django django-models