이 코드가 중복 항목 (IntegrityError)을 발생시키는 이유를 이해할 수 있도록 도와 줄 수 있습니까?Django - get_or_create가 작동하지 않습니다.
나는 장고 1.2에 있습니다.
(row, is_new) = MyModel.objects.get_or_create(field1=1)
row.other_field = 2
row.save()
필드 1에 고유 한 제한 사항이 있습니다. field1 = 1 인 행이 있으면 모든 것이 정상적으로 작동하고 장고는 "get"을 수행합니다.
field1 = 1 인 행이 없으면 Django가 해당 행을 만드는 것처럼 보입니다. 그런데 왜 내가 그것을 구할 수 없을까?
업데이트 :
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'
필드 1은 다른 테이블에 외래 키 : 도움이된다면
, 여기 MyModel입니다. 하지만 장고에서이 테이블에 대한 모델을 만들지 않았으므로 장고에 외래 키라고 말하지 않습니다.
합니까 MyModel 외국 필드가 : 행은 따라서이 당신을 위해 작동합니다, 하나의 객체와 튜플인가? MyModel 코드를 게시 할 수 있습니까? –
[이 비슷한 질문] (http://stackoverflow.com/questions/6974463/django-get-or-create-raises-duplicate-entry-with-together-unique) 도움이 될 수도 있습니다. – agf
@agf. 나는 그 문제의 해결책이 무엇인지, 또는 그 문제가 어떻게 정당화되는지 이해하지 못한다. 나에게 벌레처럼 들린다. get_or_create를 포기하고 주위를 해결할 것이라고 생각합니다 :-( – Greg