【发布时间】:2012-09-11 11:51:25
【问题描述】:
我有这个代码:
try:
principal = cls.objects.create(
user_id=user.id,
email=user.email,
path='something'
)
except IntegrityError:
principal = cls.objects.get(
user_id=user.id,
email=user.email
)
它尝试使用给定的 id 和电子邮件创建一个用户,如果已经存在,则尝试获取现有记录。
我知道这是一个糟糕的结构,无论如何它都会被重构。但我的问题是这样的:
我如何确定发生了哪种IntegrityError:与unique 约束违规相关的一种((user_id, email) 上有唯一键)或与not null 约束相关的一种(path不能为空)?
【问题讨论】:
标签: python django postgresql psycopg2