Gibt es einen Dekorator in Django ähnlich @login_required, der auch testet, wenn der Benutzer ein Superuser ist?django @login_required Decorator für einen Superuser
Dank
Gibt es einen Dekorator in Django ähnlich @login_required, der auch testet, wenn der Benutzer ein Superuser ist?django @login_required Decorator für einen Superuser
Dank
Verwenden Sie den user_passes_test
Dekorateur:
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u: u.is_superuser)
def my_view(request):
...
Bei Personal Mitgliedschaft ausreichend ist, können Sie den @staff_member_required
Dekorateur verwenden:
from django.contrib.admin.views.decorators import staff_member_required
@staff_member_required
def my_view(request):
...
Wenn Sie eine ähnliche Funktionalität haben wollen @staff_member_required Sie können einfach Ihren eigenen Dekorateur schreiben. Nehmen wir als Beispiel @staff_member, können wir so etwas tun.
from django.contrib.admin.views.decorators import user_passes_test
def superuser_required(view_func=None, redirect_field_name=REDIRECT_FIELD_NAME,
login_url='account_login_url'):
"""
Decorator for views that checks that the user is logged in and is a
superuser, redirecting to the login page if necessary.
"""
actual_decorator = user_passes_test(
lambda u: u.is_active and u.is_superuser,
login_url=login_url,
redirect_field_name=redirect_field_name
)
if view_func:
return actual_decorator(view_func)
return actual_decorator
Dieses Beispiel ist eine modifizierte staff_member_required, nur eine Überprüfung in Lambda geändert.
Ich Downvoted, da Mitarbeiter nicht die gleiche Berechtigung wie Superuser ist. –
Als ich hierher kam, ist das was ich suchte, deshalb lege ich es hier hin, und ich werde es hier lassen, weil ich denke, dass es für jemand anderen nützlich sein kann. – Bit68
Es ist @ Bit68. Ich suche es :) –