【问题标题】:Middleware class being create but process_template_response not executed正在创建中间件类但未执行 process_template_response
【发布时间】:2011-09-29 00:02:45
【问题描述】:

我已经定义了一个中间件类。我已将其添加到设置中的 middleware_classes 属性。当请求进来时,中间件类被创建(当断点在 CommonFiilter(): 类上时调试器捕获代码)

现在我希望函数 def process_template_response(self, request, response): 被调用。我在函数内部有调试点,调试器从不捕获执行。但是,调试器会在定义函数名和参数的那一行捕获执行。 这是课程:

class CommonFilter():#<---- debugger breaks here
def process_template_response(self, request, response): #<--- debugger breaks here
    if response.template_name=='store/index2.html': #<--- NOT HERE (or after this line)
        catnames=getCategories()
        response.context_data.update({'catnames':catnames,'user':request.GET.get(key='user',default=None)})
    return response

也试过这个:

class CommonFilter():#<---- debugger breaks here
def process_template_response(self, request, response):#<---- debugger breaks here
    if response.template_name=='store/index2.html':#<--- NOT HERE (or after here)
        catnames=getCategories()
        response.context_data['catnames']=catnames
        response.context_data['user']=request.GET.get(key='user',default=None)
    return response

以防万一,这是设置 MIDDLEWARE_CLASSES 变量:

MIDDLEWARE_CLASSES = (
                  'store.models.CommonFilter',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)

store 是这个项目中的一个应用程序,当然 CommonFilter 是在 models.py 中定义的。

为什么函数process_template_response函数没有被执行?

感谢您的宝贵时间和关心。

【问题讨论】:

  • 您确定要从您的视图中返回 TemplateResponse 吗?

标签: python django templates response middleware


【解决方案1】:

来自docs

process_template_response() 只会在响应时被调用 instance 有一个 render() 方法,表明它是一个 模板响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 2016-04-04
    • 2016-07-31
    • 1970-01-01
    • 2019-01-12
    相关资源
    最近更新 更多