我想在上下文处理器中注册一个变量,但发生的问题是它不起作用并且不显示任何错误。
views.py: -
def newmessage(request):
getmessagevalue = interview.objects.all()
return {'getmessagevalue': getmessagevalue }
settings.py: -
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.static",
"django.core.context_processors.media",
"django.core.context_processors.request",
"django.core.context_processors.tz",
"userprofile.views.newmessage"
)
我该怎么做,不会显示错误和值。
答案 0 :(得分:1)
您向我们展示的代码对我来说很合适。您需要确保您的视图(您尚未显示)使用请求上下文呈现模板。 See the docs了解更多信息。
将记录或打印语句添加到上下文处理器,以确保它在您的视图中运行。也许数据库中没有interview
个对象,所以它返回一个空的查询集。
帮助调试的另一个选择是安装Django debug toolbar。它有一个Template
面板,显示模板上下文处理器的输出。
另外几条建议:
Interview
,并为您的方法new_message
和变量get_message_value
名称使用下划线。userprofile.context_processors
中,而不是在您的视图模块中。如果您遵循这些约定,有经验的python和Django开发人员可以更轻松地阅读代码,因此您更有可能获得问题的答案。