0

我有一个看法:

@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'})

有人知道怎么做吗?

4

1 回答 1

4

这是不可能的,因为您正在尝试这样做,因为视图已经返回了一个现成的HttpResponse对象。但是,如果您想在多个视图的上下文中添加一些内容,则上下文处理器可能是您正在寻找的:

def add_value_context_processor(request):
    return {'var': value}

并将其添加到TEMPLATE_CONTEXT_PROCESSORS您的settings.py!

于 2013-06-22T20:10:55.133 回答