Python 创建管理员限制的URL
因此,在my urls.py(django default admin部分之外)中,我想将一些URL仅限制为admin,这样,如果我为登录用户提供了此功能的话Python 创建管理员限制的URL,python,django,django-1.9,Python,Django,Django 1.9,因此,在my urls.py(django default admin部分之外)中,我想将一些URL仅限制为admin,这样,如果我为登录用户提供了此功能的话 from django.contrib.auth.decorators import login_required urlpatterns = [ url(r'^a1$',login_required( views.admin_area1 ), name='a1'), url(r'^a2$',
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'),
]
是否有办法将这些链接限制到登录的管理员而不仅仅是任何登录的用户?
但是我可以使用
user\u passes\u test
,但是我必须在视图中使用它您可以使用user\u passes\u test(lambda u:u.is\u superuser)
返回的装饰器,使用方式与使用login\u required
相同:
urlpatterns = [
url(r'^a1$', user_passes_test(lambda u: u.is_superuser)(views.admin_area1), name='a1'),
]
如果您想限制对管理员的访问,那么使用decorator(检查标志)而不是检查标志可能更准确
用户通过测试是最好的方法。顺便说一句,不要介意我说,如果你想成为一名优秀的编码员,那就养成阅读文档的习惯。@SwakeertJain
user\u passes\u test
的问题是我必须在我不喜欢的视图中使用它,谢谢你的建议,我确实读过文档,但有时你想快速得到结果,文档很大,没有好的例子。我不想使用django admin,我正在编写我自己的管理员,所以我想工作人员\u所需的就是我想要的
from django.contrib.admin.views.decorators import staff_member_required
urlpatterns = [
url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
...
]