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
).