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