在Django中全局存储错误代码和消息

时间:2012-08-22 10:30:24

标签: python django dictionary error-handling

我有一个Django应用程序,当出现一些用户错误(即URL不存在或没有权限)时,它会执行messages.add_message。该消息包含指向/error/<id>错误说明的链接。如果我想重新使用错误ID和消息,我该怎么办?我在想这样的事情:

errors = {1 : "Error message for error id 1", 2 : "Error message for error id 2"}

我可以在哪里存储这样的字典,以便我可以在所有视图中访问它?

1 个答案:

答案 0 :(得分:0)

您应创建一个映射到url的视图,例如/error/<id>。然后在视图中包含字典errors = {1 : "Error message for error id 1", 2 : "Error message for error id 2"}或者在名为error_codes.py的文件中,并将其导入views.py。然后,只需解析<id>中传递的url,然后使用正确的template返回error code

要确保您的所有请求都可以使用此错误代码字典,请使用write custom Django Middleware。实施process_template_response(self, request, response)并通过将response.context_data添加到error_code_dictionary来更改{{1}}。将确保每个响应都在模板和其他地方呈现的http响应中提供错误字典。