所以在我的urls.py(django默认管理部分之外)我想将一些网址限制为管理员,所以如果我有这个用于登录用户
from django.contrib.auth.decorators import login_required
urlpatterns = [
url(r'^a1$',login_required( views.admin_area1 ), name='a1'),
url(r'^a2$', login_required(views.admin_area2) , name='a2'),
url(r'^a3', login_required(views.admin_area3) , name='a3'),
]
是否有enyway这些链接到已登录的管理员,而不仅仅是任何已登录的用户?
除了according to this我可以使用user_passes_test
,但我必须在视图中使用它
答案 0 :(得分:7)
您可以像使用user_passes_test(lambda u: u.is_superuser)
一样使用login_required
返回的装饰器:
urlpatterns = [
url(r'^a1$', user_passes_test(lambda u: u.is_superuser)(views.admin_area1), name='a1'),
]
如果要限制对管理员的访问,那么使用staff_member_required
装饰器(检查is_staff
标志)而不是检查is_superuser
标志可能更准确。< / p>
from django.contrib.admin.views.decorators import staff_member_required
urlpatterns = [
url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
...
]