Django - получение сообщения об ошибке из триггера MySQL через обработку OperationalError

У меня есть таблица в MySQL с триггером, который проверяет данные и в случае критического значения сообщает об ошибке.

Вот код триггера:

CREATE TRIGGER `supermarkets_schema`.`legal_entities_BEFORE_INSERT`
BEFORE INSERT ON `supermarkets_schema`.`legal_entities`
FOR EACH ROW
BEGIN
    DECLARE parent_inn, parent_ogrn, parent_temp_leg_address VARCHAR(300);

    IF some_condition THEN
        SIGNAL sqlstate '45001' set message_text = 'My error msg' 
END

Теперь я хочу получить это сообщение об ошибке в Django и показать его на странице шаблона Django.

Вот что я пытаюсь сделать:

import django.db

try:
   legal_entities_details_instance.legal_entities = legal_entities_form.save()
except OperationalError as e:
   return render_to_response("error_handling/main.html", {"message": e.message})

Но, к сожалению, я не могу заставить Джанго справиться с этим правильно. Может ли это произойти, потому что я импортирую неправильный пакет для OperationalError? Помогите мне пожалуйста с этим!!!

1 ответ

Решение

Вы не импортировали OperationalError перед использованием в вашем коде:

from django.db import OperationalError

Вы могли бы на самом деле хотите поймать DatabaseError вместо OperationalError (который является подклассом DatabaseError).

Другие вопросы по тегам