DjangoでURL パターンを権限によって制限する
URL パターンを権限によって制限するには、Djangoの user_passes_test デコレータを使うことができます。以下は、URL パターンを制限する例です:
python
# views.py
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render
from django.urls import path
from . import views
def has_access_your_feature(user):
return user.has_perm('your_app.can_access_your_feature')
urlpatterns = [
path('your-protected-view/', user_passes_test(has_access_your_feature)(views.your_protected_view), name='your_protected_view'),
# 他の URL パターンをここに追加
]
この例では、your-protected-view/ という URL パターンを has_access_your_feature テスト関数によって保護しています。テスト関数が True を返す場合、ユーザーはそのビューにアクセスできます。テスト関数が False を返す場合、user_passes_test デコレータはユーザーをログインページにリダイレクトします。
can_access_your_feature はあらかじめユーザーに与えられた権限です。必要に応じて、権限を管理者サイトで追加してください。
なお、これは URL パターンごとの権限制御です。特定のビュー内での条件に基づく権限制御が必要な場合は、ビュー内で user_passes_test デコレータを直接使うこともできます。

ディスカッション
コメント一覧
まだ、コメントがありません