gpt4 book ai didi

python - 如何使用 Django 中间件在所有 Django 上下文中插入一些文本

转载 作者:太空狗 更新时间:2023-10-29 17:39:09 27 4
gpt4 key购买 nike

这是我的中间件代码:

from django.conf import settings
from django.template import RequestContext

class BeforeFilter(object):
def process_request(self, request):
settings.my_var = 'Hello World'
request.ss = 'ssssssssss'
return None
def process_response(self, request, response):

return response

这是settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
)
MIDDLEWARE_CLASSES = (
...
'middleware.BeforeFilter',
)

View 是:

#coding:utf-8

from django.conf import settings
from django.shortcuts import render_to_response

from django.http import HttpResponse
from django.template import RequestContext


def index(request):
context = RequestContext(request)
context['a'] = 'aaaa'
return render_to_response('a.html',context)

html 是:

{{a}}fffff{{ss}}

但它不显示 {{ss}}:

aaaafffff 

那么我该如何显示:

aaaafffffssssssss

如何使用 django 中间件在所有 django 上下文中插入一些文本,

所以我不能每次都使用插入文本,

谢谢

最佳答案

为了实现您最初的目标,我认为不需要BeforeFilter 中间件。我们需要的只是一个 template context processor .

编写上下文处理器如下:

#file: context_processors.py

def sample_context_processor(request):
return {'ss':'ssssssssss'} #or whatever you want to set to variable ss

然后将上下文处理器添加到 TEMPLATE_CONTEXT_PROCESSORS 列表

#file: settings.py 

TEMPLATE_CONTEXT_PROCESSORS = (
'myproject.context_processors.sample_context_processor',
)

关于python - 如何使用 Django 中间件在所有 Django 上下文中插入一些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973276/

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