0

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

视图.py:-

def newmessage(request):
    getmessagevalue = interview.objects.all()
    return {'getmessagevalue': getmessagevalue }

设置.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"

)

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

4

1 回答 1

1

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

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

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

另外几个建议:

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

如果您遵循这些约定,您的代码对于有经验的 python 和 Django 开发人员来说更容易阅读,因此您更有可能得到问题的答案。

于 2013-09-05T11:17:08.393 回答