Django - 在视图注释中指定模板

时间:2012-08-03 22:39:24

标签: python django

是否可以在视图注释中指定模板名称。

我想在views.py中做类似的事情: 而不是:

def home(request, url):    
    page = PageFactory.create_for_url(url)    
    return render_to_response('front/home.html', {'page': page})

我更愿意这样做:

@view('front/home.html')
def home(request, url):    
    page = PageFactory.create_for_url(url)    
    return {'page': page}

可行吗?

1 个答案:

答案 0 :(得分:1)

有几个家庭酿造装饰师这样做

以下看起来是一个好的开始

def renderer(func):
        def wrapper(request, *args, **kw):
            output = func(request, *args, **kw)
            if isinstance(output, (list, tuple)):
                return render_to_response(output[1], output[0], RequestContext(request))
            elif isinstance(output, dict):
                return render_to_response(template, output, RequestContext(request))
            return output
        return wrapper
    return renderer

http://djangosnippets.org/snippets/821/

谷歌搜索结果为4-5。