投稿を含むブログというアプリがあるとします。ユーザーが投稿を追加および変更できるようにしたいが、削除はできないようにしたい.
Django ドキュメントにはこの例があります
from myapp.models import BlogPost
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
content_type = ContentType.objects.get_for_model(BlogPost)
permission = Permission.objects.create(codename='can_publish',
name='Can Publish Posts',
content_type=content_type)
ここで実際に何かを定義する方法はわかりません。名前とコンテンツ タイプを指定するだけです。
Django には基本的な権限チェックもあります
app_label foo と Bar という名前のモデルを持つアプリケーションがあると仮定して、使用する必要がある基本的なアクセス許可をテストします。
add: user.has_perm('foo.add_bar')
change: user.has_perm('foo.change_bar')
delete: user.has_perm('foo.delete_bar')
私のアプリでは、次のようになります。
add: user.has_perm('blog.add_post')
change: user.has_perm('blog.change_post')
delete: user.has_perm('blog.delete_post')
このような権限を作成してユーザーに追加するにはどうすればよいですか (管理者ではなくコードで)。