ユーザーがスーパーユーザーかどうかもテストする @login_required に似たdjangoのデコレータはありますか?
ありがとう
user_passes_test
デコレータを使用します。
from django.contrib.auth.decorators import user_passes_test
@user_passes_test(lambda u: u.is_superuser)
def my_view(request):
...
スタッフ メンバーシップが十分であり、ユーザーがスーパーユーザーであるかどうかを確認する必要がない場合は、@staff_member_required
デコレータを使用できます。
from django.contrib.admin.views.decorators import staff_member_required
@staff_member_required
def my_view(request):
...
ユーザーのプロファイルがある場合は、これを簡単に行うことができます
@login_required
@user_passes_test(lambda u: True if u.profile.role==2 else False )
def add_listing(request):
#...
新しいコードを書かずにクラスベースのビューでスーパーユーザーを要求するには:
from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import user_passes_test
@method_decorator(user_passes_test(lambda u: u.is_superuser), name='dispatch')
class AdminCreateUserView(LoginRequiredMixin, FormView):
...
...
...