在Djang中提供给模板的全局变量

2024-10-01 13:39:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想我所有的模板都可以使用。我整个上午都在研究这个问题,我唯一能找到的方法就是拥有这样的中间件:

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

有这样的观点:

^{pr2}$

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

Hello {{ name }}

我不能再使用render了,这看起来有点难看(我知道我可以做from django.template.response import TemplateResponse as render,但这不是一个真正的解决方案)

(Django 1.10,python 3.5.2)


Tags: 中间件方法nameself模板getreturnobject