我想限制对Django通用视图处理的URL的访问。
对于我的观点,我知道login_required装饰器可以完成这项工作。同样,“创建/删除/更新通用视图” login_required也带有该参数,但是我找不到其他通用视图的方法。
对于Django <1.5,你可以通过将函数包装在url中来添加装饰器,从而可以包装通用视图:
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函数:
login_required
login_required(TemplateView.as_view(template_name='foo_index.html'))