【发布时间】:2013-06-22 19:56:07
【问题描述】:
我有一个看法:
@add_value
my_view(request):
render_to_response('template.html', {'var1' : 'value'})
还有一个装饰器:
def add_value():
def decorator(view_func):
def _decorator(request, *args, **kwargs):
response = view_func(request, *args, **kwargs)
#what code can I put in here to add { 'var2' : 'value' } to render_to_response context?
我希望装饰器添加一个密钥对,所以最终的render_to_response会变成如下:
render_to_response('template.html', {'var1 : 'value', 'var2' : 'value'})
有人知道怎么做吗?
【问题讨论】:
-
您不能使用该视图代码,因为在函数返回时渲染已经完成。您可以改为返回
TemplateResponse,这将允许您更改上下文,但正如 Bernhard 的回答所建议的那样,使用上下文处理器可能会更好。