gpt4 book ai didi

django - 在 Django 中创建我自己的上下文处理器

转载 作者:行者123 更新时间:2023-11-28 19:33:07 25 4
gpt4 key购买 nike

我已经到了需要将某些变量传递到我的所有 View (主要是自定义身份验证类型变量)的地步。

我被告知编写自己的上下文处理器是执行此操作的最佳方法,但我遇到了一些问题。

我的设置文件是这样的

TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.contrib.messages.context_processors.messages",
"sandbox.context_processors.say_hello",
)

如您所见,我有一个名为“context_processors”的模块和一个名为“say_hello”的函数。

看起来像

def say_hello(request):
return {
'say_hello':"Hello",
}

我是否可以假设我现在可以在我的观点范围内执行以下操作?

{{ say_hello }}

现在,这在我的模板中呈现为空。

我的观点看起来像

from django.shortcuts import render_to_response

def test(request):
return render_to_response("test.html")

最佳答案

您编写的上下文处理器应该可以工作。问题在您看来。

您确定您的 View 是使用 RequestContext 呈现的吗?

例如:

def test_view(request):
return render_to_response('template.html')

上面的 View 不会使用 TEMPLATE_CONTEXT_PROCESSORS 中列出的上下文处理器。确保您提供的是 RequestContext,如下所示:

def test_view(request):
return render_to_response('template.html', context_instance=RequestContext(request))

关于django - 在 Django 中创建我自己的上下文处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com