我在 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})
但不幸的是,我无法让 Django 正确处理它。是否会因为我为 OperationalError 导入不正确的包而发生这种情况?请帮助我!
最佳答案
在代码中使用OperationalError
之前,您尚未导入它:
from django.db import OperationalError
您实际上可能想捕获DatabaseError
,而不是OperationalError
(它是DatabaseError
的子类)。
关于mysql - Django - 通过处理OperationalError从MySQL触发器获取错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232456/