在Django中为模板提供全局变量

罗伯特·约翰斯顿

我想为我的所有模板提供一个公共变量。我整个上午一直在努力,而我唯一能找到的方法就是拥有这样的中间件:

class GetNameMiddleware(object):

    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        return response

    def process_template_response(self, request, response):
        response.context_data['name'] = 'dave'
        return response

并具有如下视图:

from django.template.response import TemplateResponse
from django.shortcuts import render

def home(request):
    return TemplateResponse(request, 'home.html', {})

然后我可以在模板中访问它

Hello {{ name }}

它只是似乎有点丑,我不能使用render任何更多的(我知道我能做到from django.template.response import TemplateResponse as render,但是这不是一个真正的解决方案)

(Django 1.10,python 3.5.2)

乔尔戈斯普

Django有一个标准的实现方式,即上下文处理器。本文提供了示例实现https://www.webforefront.com/django/setupdjangocontextprocessors.html

实际上,上下文处理器只是一个接受请求对象并返回包含所需数据的字典的函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于Django模板和全局变量

来自分类Dev

如何访问模板中的全局变量?

来自分类Dev

Laravel Blade模板中的全局变量

来自分类Dev

在C ++中为全局变量赋值

来自分类Dev

为 FirebaseDatabase 中的全局变量赋值

来自分类Dev

在Kendo网格列模板中为全局变量分配动态值

来自分类Dev

在Django中设置全局变量

来自分类Dev

全局变量Django

来自分类Dev

如何确定Blade模板中的全局变量?

来自分类Dev

如何从模板覆盖XSLT中的全局变量?

来自分类Dev

AngularJS:在html模板中访问全局变量

来自分类Dev

在模板中访问jinja2全局变量

来自分类Dev

如何在树枝模板文件中定义全局变量?

来自分类Dev

AngularJS:在html模板中访问全局变量

来自分类Dev

如何从模板覆盖XSLT中的全局变量?

来自分类Dev

全局变量为空,即使已在sub vba中设置了全局变量

来自分类Dev

Django:将值建模为全局变量

来自分类Dev

全局变量为空

来自分类Dev

有没有办法在phpunit configuration.xml中为全局变量提供数组值?

来自分类Dev

在Jasmine中为angularjs设置全局变量

来自分类Dev

Python全局变量在函数中为空

来自分类Dev

在Lua中为全局变量分配功能

来自分类Dev

Flask中的全局变量被重置为None

来自分类Dev

如何在PHP中为全局变量赋值

来自分类Dev

Bash全局变量在函数中为空

来自分类Dev

在webpack中为前端配置设置全局变量?

来自分类Dev

Django中未定义的全局变量

来自分类Dev

在模板内部使用全局变量包括

来自分类Dev

python使用全局变量中的变量而未在局部范围内将其定义为全局变量