创建管理员限制的URL

2024-04-26 14:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在我的网址.py(在django默认的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$', login_required(views.admin_area2) , name='a2'),
        url(r'^a3', login_required(views.admin_area3) , name='a3'),
    ]

有没有办法限制这些链接到登录的管理员而不仅仅是任何登录的用户? 只有according to this我可以使用user_passes_test,但我必须在视图中使用它


Tags: django用户namefrompya2urladmin
1条回答
网友
1楼 · 发布于 2024-04-26 14:30:59

可以使用user_passes_test(lambda u: u.is_superuser)返回的decorator,方法与使用login_required相同:

urlpatterns = [
    url(r'^a1$', user_passes_test(lambda u: u.is_superuser)(views.admin_area1), name='a1'),
]

如果您想限制对管理员的访问,那么使用^{}修饰符(检查^{}标志)而不是检查^{}标志可能更准确。你知道吗

from django.contrib.admin.views.decorators import staff_member_required

urlpatterns = [
    url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
    ...
]

相关问题 更多 >