Я хочу обработать случай, когда есть конфликт первичного ключа или уникального ключа, то есть дублирующаяся запись. Для этого я ловлю IntegrityError
, которая прекрасно ловит ошибку. Проблема в том, что я не могу найти ни одного простого сообщения об ошибке или кода ошибки для проверки. Все, что я получаю, это свойство IntegrityError.message
которое представляет собой строку, которая выглядит следующим образом:
(IntegrityError) (1062, "Дублирующая запись 'foobar' для ключа 'name'")
Это не очень полезно. Используя это, я собираюсь начать анализ сообщений об ошибках для их кода и сообщения. Вызов dir
для исключения показывает только следующие свойства:
'args', 'connection_invalidated', 'instance', 'message', 'orig', 'params', 'Statement'
args
- это просто одноэлементный кортеж с вышеупомянутой строкой внутри, а params
- это данные, которые я пытался вставить. Я не могу найти какой-либо способ определить, что это на самом деле ошибка дублированного ключа, без необходимости разбирать сообщение об ошибке с помощью регулярных выражений или чего-то еще.
Кто-нибудь может пролить свет на этот вопрос?