假设名字和姓氏在Models.py中如下所示:
unique_together = ('first_name', 'last_name',)
和view.py
obj, created = Person.objects.get_or_create(
first_name='John',
last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)},
)
但是有时我会由于重复而导致错误: 通常在Postgres中,插入时我会使用ON CONFLICT DO NOTHING。 Django中执行此操作的最佳方法是什么? 谢谢
答案 0 :(得分:0)
如果要在数据库中插入重复的密钥,则可以尝试捕获应该引发的IntegrityError
:
from django.db import IntegrityError
try:
obj, created = Person.objects.get_or_create(
first_name='John',
last_name='Lennon',
defaults={'birthday': date(1940, 10, 9)},
)
except IntegrityError:
pass
您可以在此处了解有关Django数据库异常的更多信息:https://docs.djangoproject.com/en/dev/ref/exceptions/#django.db.IntegrityError