allowing only super user login

后端 未结 3 1083

I have written a django page that requires only super users to login. So I have added

foo_view = staff_member_required(foo_view)

but it doesn\

相关标签:
3条回答
  • 2021-02-02 12:44

    Try:

    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)
    

    Or (with Python >= 2.4):

    from django.contrib.auth.decorators import user_passes_test
    
    @user_passes_test(lambda u: u.is_superuser)
    def foo_view(request):
        # ...
    
    0 讨论(0)
  • 2021-02-02 12:51

    Above answers seems to be for very early versions of django. They are bit complicated than for the more later version

    for django 1.11 here is a bit similar but simpler strategy. click here

    0 讨论(0)
  • 2021-02-02 12:59

    The code you suggested works perfect for me, I used it in many projects since Django 1.4:

    from django.contrib.auth.decorators import login_required
    from django.http import HttpResponse
    
    @login_required
    def foo_view(request):
       if not request.user.is_superuser:
           return HttpResponse('The user is not superuser')
    
       # Do whatever you need to do
    

    This code works perfect for me since Django 1.4 to 1.7 at least.

    0 讨论(0)
提交回复
热议问题