当前位置: 首页 > 面试题库 >

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

龙俊美
2023-03-14
问题内容

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

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

我的设置文件如下所示

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")

问题答案:

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

你确定要使用渲染视图RequestContext吗?

例如:

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

上面的视图将不使用中列出的上下文处理器TEMPLATE_CONTEXT_PROCESSORS。确保你提供的RequestContext是这样的:

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


 类似资料:
  • 问题内容: 我正在Django(1.11)上编写自己的自定义,并从auth0获取经过身份验证的用户的信息。这不是我第一次写它,我也不知道这个错误是从哪里来的: ImportError:模块“ auth.context_processors”未定义“ auth0_processors”属性/类 看起来是这样的: auth / settings.py: auth / context_processor

  • 问题内容: 我有一个奇怪的问题,我想使用上下文处理器添加全局查询。这是我通过以下方法做到的: 这样在我的应用中创建了一个processor.py: 并在我的setting.py结尾处添加了以下内容: 最后,我通过以下观点: 在我的index.html模板上: 最后是我的网址: 我的foos显示没有问题,但是我的media_url和其他上下文消失了。可能是什么问题 问题答案: 当你指定时: 在设置文

  • 好吧,所以我试图在Java创建自己的LinkedList类(带有泛型类型),但是遇到了一些问题。我创建了一个LinkedListNode类,它基本上设置并获取next和right指针以及节点的键。我的LinkedList类代码发布在下面,如果您编译并运行,您会发现它没有按照应该的方式设置列表。此刻,我正在尝试在节点x之后插入节点y,但我的打印输出看起来像: 键:5-上一键:6-下一键:6键:6-上

  • 问题内容: 我试图确保我的Rhino脚本(在Java 6下运行)很严格,以便如果脚本开发人员拼错了一个表达式,我希望抛出一个异常。当前发生的情况是该表达式仅计算为“未定义”。 根据Mozilla org https://developer.mozilla.org/en/New_in_Rhino_1.6R6的介绍,现在有一些功能可以在上下文中进行严格检查。我找不到一个可行的例子。 到目前为止,我所做

  • 我正在构建一个自定义处理器来处理流文件,为了处理流文件,我需要从我的本地文件系统读取CSV文件。我创建了一个proerty描述符CSV_PATH,如下所示 现在我想在配置处理器时获取在UI中设置的CSV_PATH属性的值。我无法获得CSV_PATH值。另外,如果我在代码中硬编码filepath,那么我仍然无法从本地文件系统读取CSV。

  • 我创建了一个名为EasyPrefs的注释处理器,当我尝试在我的项目中使用它时,它会显示以下警告。 请求增量注释处理,但禁用支持,因为以下处理器不是增量的:net.androidcart.easyprefs.EasyPrefsProcessor(NON_INCREMENTAL)。 我做了一些研究,没有找到任何关于如何使它增量的教程。是否需要任何梯度配置,或者某些功能需要被覆盖,等等。