1

ビュー注釈でテンプレート名を指定することはできますか?

私は自分の 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}

それは実行可能ですか?

4

1 に答える 1

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/

Google の結果は 4 ~ 5 です。

于 2012-08-03T22:52:36.397 に答える