Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中全局存储错误代码和消息_Python_Django_Dictionary_Error Handling - Fatal编程技术网

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

Python 在Django中全局存储错误代码和消息,python,django,dictionary,error-handling,Python,Django,Dictionary,Error Handling,我有一个Django应用程序,当出现一些用户错误时,例如URL不存在或没有权限,它将执行messages.add_message。该消息包含指向/error/处错误解释的链接。如果我想重新使用错误id和消息,我该怎么做?我是这样想的: errors={1:错误id为1的错误消息,2:错误id为2的错误消息} 在哪里可以存储这样的词典,以便在所有视图中访问它?您应该创建一个映射到url(如/error/)的视图。然后在视图内部有dictionary errors={1:Error message

我有一个Django应用程序,当出现一些用户错误时,例如URL不存在或没有权限,它将执行messages.add_message。该消息包含指向/error/处错误解释的链接。如果我想重新使用错误id和消息,我该怎么做?我是这样想的:

errors={1:错误id为1的错误消息,2:错误id为2的错误消息}


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

您应该创建一个映射到url(如/error/)的视图。然后在视图内部有dictionary errors={1:Error message for Error id 1,2:Error message for Error id 2},或者在一个名为Error_codes.py的文件中,将其导入views.py。然后简单地解析传入的url并返回带有正确错误代码的模板


要确保此错误代码字典在所有请求中都可用,请使用“编写自定义”。通过向response.context数据中添加错误代码字典,实现流程模板、响应、请求、响应和更改response.context数据。将确保每个响应都有在模板和其他地方呈现的http响应中可用的错误字典。

您能否澄清“重复使用”的含义;我想这就是你所说的重复使用。通常错误消息存储在日志文件中,格式可以是你喜欢的任何格式,但你也可以将它们存储在数据库中。我不知道需要在哪里设置。字典在视图中读取,错误id和文本被提供给messages.add_message,然后显示在模板中。@user1585811这不是django错误,是我正在设置和显示的错误,与系统错误无关。这些都像是给用户的验证错误,而不是给系统的。好吧,在数据库中存储是一种选择,但它会带来性能问题,你可以尝试的另一件事是将其存储在缓存中。我希望在用户单击更多信息之前在页面上显示错误消息。例如,当表单提交不正确时,此消息将显示错误代码15:文件类型不正确。错误代码15是指向错误解释页面的链接。我真的需要能够在我的应用程序的任何视图中访问错误号和消息。我编辑了我的答案。使用Django中间件访问页面中的所有错误代码,然后使用视图链接错误代码URL