创建管理员限制的网址
creating admin restricted urls
所以在我的 urls.py 中(django 默认管理部分之外)我想限制一些 url 只给管理员所以如果我有这个用于登录用户
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'),
]
有没有办法将这些链接限制为已登录的管理员,而不仅仅是任何已登录的用户?
有但是 according to this 我可以使用 user_passes_test
但我必须在视图
中使用它
您可以像使用 login_required
一样使用 user_passes_test(lambda u: u.is_superuser)
返回的装饰器:
urlpatterns = [
url(r'^a1$', user_passes_test(lambda u: u.is_superuser)(views.admin_area1), name='a1'),
]
如果您想限制管理员访问,那么使用 staff_member_required
decorator (which checks the is_staff
flag) instead of checking the is_superuser
标志可能更准确。
from django.contrib.admin.views.decorators import staff_member_required
urlpatterns = [
url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
...
]
所以在我的 urls.py 中(django 默认管理部分之外)我想限制一些 url 只给管理员所以如果我有这个用于登录用户
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'),
]
有没有办法将这些链接限制为已登录的管理员,而不仅仅是任何已登录的用户?
有但是 according to this 我可以使用 user_passes_test
但我必须在视图
您可以像使用 login_required
一样使用 user_passes_test(lambda u: u.is_superuser)
返回的装饰器:
urlpatterns = [
url(r'^a1$', user_passes_test(lambda u: u.is_superuser)(views.admin_area1), name='a1'),
]
如果您想限制管理员访问,那么使用 staff_member_required
decorator (which checks the is_staff
flag) instead of checking the is_superuser
标志可能更准确。
from django.contrib.admin.views.decorators import staff_member_required
urlpatterns = [
url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
...
]