繁体   English   中英

Django上下文处理器中的变量

[英]Variable in Django Context Processor

我想在上下文处理器中注册一个变量,但是发生的问题是它不起作用并且不显示任何错误。

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"

)

我该怎么办,错误和值不显示。

您显示给我们的代码对我来说还不错。 您需要确保您的视图(未显示)正在使用请求上下文呈现模板。 有关更多信息, 请参阅文档

将日志记录或打印语句添加到上下文处理器,以确保它在您的视图中运行。 也许您的数据库中没有interview对象,所以它返回一个空的查询集。

另一个有助于调试的选项是安装Django调试工具栏 它具有一个“ Template面板,向您显示模板上下文处理器的输出。

另外一些建议:

  • 将模型命名为Interview ,并为方法new_message和变量get_message_value名称使用下划线。
  • 将上下文处理器放在单独的模块userprofile.context_processors而不是在视图模块中。

如果遵循这些约定,那么经验丰富的python和Django开发人员就可以更轻松地阅读代码,因此更有可能获得问题的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM