1
我想寫一個裝飾,將提供價值給模板渲染環境,就像這樣:在實現它看起來是這樣的如何在Django視圖裝飾器中的上下文中設置值?
@deco(art=Nouveau)
def my_wall(request):
# should have art == 'something' in the template
return render_from_template('plain_white.html', {art:'something'}, context_instance=RequestContext(request))
@deco(art=Nouveau)
def my_wall(request):
# should have art == Nouveau in the template
return render_from_template('plain_white.html', {}, context_instance=RequestContext(request))
我的初步嘗試:
class deco(object):
def __init__(self, art=None):
self.art = art
def __call__(self, f):
@wraps(f)
def wrapper(request, *args, **kwargs):
if self.art:
request.setdefault('art', self.art)
return f(request, *args, **kwargs)
然而,這不起作用,因爲請求不是真正的詞典。
我該如何執行此操作?