对于Django <1.5,你可以通过将函数包装在url中来添加装饰器,从而可以包装通用视图:@H_301_1@
from django.contrib.auth.decorators import login_required
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('',
(r'^foo/$', login_required(direct_to_template), {'template': 'foo_index.html'}),
)
基于函数的通用视图在Django 1.4中已弃用,在Django 1.5中已删除。但是同样的原理也适用,只是用login_required
装饰器包装基于类的视图的view函数:@H_301_1@
login_required(TemplateView.as_view(template_name='foo_index.html'))