没有调用Django中间件process_template_response方法

时间:2011-06-11 19:33:23

标签: python django django-templates

我有以下中间件类:

class CommonContextMiddleware:
    def process_template_response(self, request, response):
        # Get the context and top videos
        context = response.context_data

        ...

        # Add most_recent and most_viewed to the context...
        context['most_recent'] = top_videos['most_recent'][:3]
        context['most_viewed'] = top_videos['most_viewed'][:3]

        # ...then continue rendering
        return response

但是,无论我在函数中添加什么,都不会被调用。我假设生成的每个模板响应都会调用此方法,我错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:4)

我假设当你谈论“模板响应”时,你实际上是从Django视图返回TemplateResponse了吗?

对于这类事情来说,这不是最好的地方。如果您只想将变量添加到每个模板上下文中,最好的位置是context processor