Search code snippets, questions, articles...

Allow or limit a view to superuser only Django

If you want to allow or limit a view to superuser only in Django, you can use the @ user_passes_test decorator. This decorator will check if the user is logged in and is a superuser. If not, it will redirect the user to the login page.
from django.contrib.auth.decorators import user_passes_test

@user_passes_test(lambda u: u.is_superuser)
def dashboard(request):
    return "View"

The code above is a decorator that checks if the user is a superuser. If the user is a superuser, they are allowed to access the view. If the user is not a superuser, they will not be able to access the view.

We have imported user_passes_test from django.contrib.auth.decorators and then we have used it on the view that we want to secure from every user access in the application.

Was this helpful?
Programming Feeds
Learn something new everyday on Devsheet