Djangoで指定の権限以上なら表示させたい

2024年6月23日

Djangoでは、user_passes_testデコレータを使用して、ユーザーが特定の権限を持っているかどうかを確認できます。以下は、特定の権限以上のユーザーにのみビューを表示させる例です。

python
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render

def has_permission(user):
    # 例: userがstaffまたはsuperuserの場合にTrueを返す
    return user.is_staff or user.is_superuser

@user_passes_test(has_permission)
def your_protected_view(request):
    # ビューの本来の処理をここに書く
    return render(request, 'protected_view.html')

上記の例では、has_permission関数がuserstaffまたはsuperuser権限を持っている場合にTrueを返すようになっています。user_passes_testデコレータは、この関数がTrueを返す場合にのみビューを表示します。この関数を適切な条件に合わせて変更してください。

また、これは特定の権限以上であるかどうかを確認していますが、具体的な権限名や条件はプロジェクトの要件によって変わる可能性があります。適切な条件や権限名に応じて変更してください。

未分類

Posted by ぼっち