如何在渲染之前编辑Context()? Django的

时间:2011-10-19 15:13:05

标签: python django

TEMPLATE_CONTEXT_PROCESSORS的处理器不允许编辑上下文或者我感到困惑? 即使我是子类

class MyContext(Context):
    def __init__(self, *args, **kwargs):
        Context.__init__(self, *args, **kwargs)

上下文并尝试将其传递给context_instance,它不会让我访问字典。它会在渲染之前附加它。

return render_to_response(template, {'hello':'Hello World'}, context_instance=MyContext())

那么如何在渲染之前分析和编辑上下文呢?

更新

我发现的唯一方法是子类化Context end overwrite update方法。

class RequestContext(Context):

    def update(self,other_dict):
        print other_dict
        super(RequestContext, self).update(other_dict)

1 个答案:

答案 0 :(得分:0)

你可以设置相同的变量名称,它会覆盖它,检查Django docs。您无法在上下文处理器中读取上下文。你可以使用template tags,但它们并不是真正意义上的。