我有一个Django应用程序,当出现一些用户错误(即URL不存在或没有权限)时,它会执行messages.add_message
。该消息包含指向/error/<id>
错误解释的链接。如果我想重复使用错误id和消息,我该怎么做?我在想这样的事情:
errors = {1 : "Error message for error id 1", 2 : "Error message for error id 2"}
我可以在哪里存储这样一本词典,以便在我的所有视图中都可以访问它?
您应该创建一个映射到类似/error/<id>
的url
的视图。然后在视图中放入字典errors = {1 : "Error message for error id 1", 2 : "Error message for error id 2"}
,或者放入名为error_codes.py
的文件中,并将其导入到views.py
中。然后简单地解析url
中传递的<id>
,并返回具有正确error code
的template
。
为了确保这个错误代码字典在所有请求中都可用,请使用编写自定义Django中间件。实现process_template_response(self, request, response)
并通过添加error_code_dictionary
来更改response.context_data
。将确保每个响应都有在模板和其他地方呈现的http响应中可用的错误字典。