我有这个代码:
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
)
Run Code Online (Sandbox Code Playgroud)
它尝试使用给定的id和电子邮件创建用户,如果已存在,则尝试获取现有记录.
我知道这是一个糟糕的结构,无论如何它都会被重构.但我的问题是:
我如何确定IntegrityError发生了什么类型:与unique约束违规相关的一个((user_id,email)上有唯一键)或者与not null约束相关的那个(path不能为空)?