1

我在 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 导入不正确的包而发生吗?请帮帮我!

4

1 回答 1

2

OperationalError在您的代码中使用它之前,您尚未导入:

from django.db import OperationalError

您可能实际上想要捕获DatabaseError而不是OperationalError(它是 的子类DatabaseError)。

于 2016-05-15T03:56:36.397 回答