Authentication and Authorization セクションに移動し、Permissions を選択します。Permissions がない
Djangoの権限は、auth_permission テーブルに格納されていますが、それらを直接管理者サイトから追加することはできません。権限は通常、Djangoの組み込みの manage.py コマンドやマイグレーションを使用してプログラムで追加されます。
以下は、権限を追加する方法です。
- カスタム権限の作成:
Permissionモデルを使用して権限を追加します。これは通常、models.pyファイルで行います。python # models.py from django.db import models from django.contrib.auth.models import Permission, ContentType class YourModel(models.Model): # このモデルのフィールドを定義 # カスタム権限を作成 content_type = ContentType.objects.get_for_model(YourModel) permission = Permission.objects.create( codename='can_access_your_feature', name='Can Access Your Feature', content_type=content_type, )上記の例では、
YourModelモデルに関連するcan_access_your_featureというカスタム権限を作成しています。 - マイグレーションの実行:
上記の変更をデータベースに反映するために、以下のコマンドを実行します。
bash python manage.py makemigrations python manage.py migrate
これにより、
auth_permissionテーブルが更新され、新しい権限が追加されます。 @user_passes_testデコレータで権限を確認:先ほど作成した権限を使用して
@user_passes_testデコレータで権限を確認します。python # views.py from django.contrib.auth.decorators import user_passes_test from django.shortcuts import render def has_access_your_feature(user): # ユーザーが特定の権限を持っているかどうかを確認 return user.has_perm('your_app.can_access_your_feature') @user_passes_test(has_access_your_feature) def your_protected_view(request): # ここに権限が必要な処理を追加 return render(request, 'protected_view.html')
これで、カスタム権限を作成し、それを使用してビューで権限を確認できるようになりました。再度の誤解についてお詫び申し上げます。

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