私はこのコードを持っています:
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と電子メールでユーザーを作成しようとします。既に存在する場合は、既存のレコードを取得しようとします。
これは悪い構造であり、とにかくリファクタリングされることを私は知っています。しかし、私の質問はこれです:
制約違反に関連するもの((user_id、email)に一意のキーがある)または制約に関連するもの(nullにすることはできません)のどのような種類IntegrityError
が発生したかを判断するにはどうすればよいですか?unique
not null
path