代码之家  ›  专栏  ›  技术社区  ›  max

创建受管理员限制的url

  •  2
  • max  · 技术社区  · 8 年前

    所以在我的url中。py(在django默认管理部分之外)我想将一些url限制为admin,所以如果我有登录用户的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 但我必须在视野中使用它

    1 回复  |  直到 7 年前
        1
  •  7
  •   Alasdair    8 年前

    您可以使用返回的装饰器 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

    from django.contrib.admin.views.decorators import staff_member_required
    
    urlpatterns = [
        url(r'^a1$', staff_member_required(views.admin_area1), name='a1'),
        ...
    ]