主キーまたは一意キーの競合、つまり重複エントリがあるケースを処理したいです。このために、 をキャッチしています。IntegrityError
これでエラーは問題なくキャッチされます。問題は、確認すべき簡単なエラー メッセージやエラー コードが見つからないことです。取得できるのは、IntegrityError.message
次のような文字列である プロパティだけです。
(IntegrityError) (1062、「キー 'name' のエントリ 'foobar' が重複しています」)
これはあまり役に立ちません。これを使用すると、エラー メッセージのコードとメッセージを解析する必要があります。dir
例外を呼び出すと、次のプロパティのみが表示されます。
'args'、'connection_invalidated'、'instance'、'message'、'orig'、'params'、'statement'
args
は、前述の文字列が含まれた単一の項目のタプルであり、params
挿入しようとしたデータです。正規表現などを使用してエラー メッセージを解析しない限り、これが実際に重複キー エラーであるかどうかを判断する方法が見つからないようです。
この問題に関して誰か説明できますか?