只允许超级用户登录

Hel*_*nar 18 django django-admin

我写了一个django页面,只需要超级用户登录.所以我补充说

foo_view = staff_member_required(foo_view)
Run Code Online (Sandbox Code Playgroud)

但它没有削减,现在我可以控制只允许员工标记用户登录,但这不会削减.我尝试过类似的东西

def foo_view(request):
       if not request.user.is_superuser:
           #render some "not allowed page"
       #else render the page
Run Code Online (Sandbox Code Playgroud)

但它似乎没有给我错误的帮助.

Dom*_*ger 53

尝试:

from django.contrib.auth.decorators import user_passes_test

def foo_view(request):
    # ...
foo_view = user_passes_test(lambda u: u.is_superuser)(foo_view)
Run Code Online (Sandbox Code Playgroud)

或者(使用Python> = 2.4):

from django.contrib.auth.decorators import user_passes_test

@user_passes_test(lambda u: u.is_superuser)
def foo_view(request):
    # ...
Run Code Online (Sandbox Code Playgroud)