7

Django 1.4 のパーミッション/認証に関するドキュメントには、プログラムでカスタム パーミッションを作成するための次のスニペットが用意されています。

編集:(特定のモデルクラスに必ずしもリンクされているわけではなく、複数のタイプにまたがるより一般的な権限にこれを採用したいと思います。)

from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost')
permission = Permission.objects.create(codename='can_publish',
                                       name='Can Publish Posts',
                                       content_type=content_type)

ソース

私の質問はこのコードをどこに配置する必要があるかです。明らかに、これらは一度だけ作成する必要がありますが、シェルで作成する必要はありません。これはどこかのファイルに保存する必要があるようです。(ドキュメンテーションのため。)

4

1 に答える 1

2

permissions通常は、メタ属性を使用して、対応するモデル クラスに必要なアクセス許可を追加するだけで十分です。

これは公式ドキュメントからのものです:

class Task(models.Model):
    ...
    class Meta:
        permissions = (
            ("view_task", "Can see available tasks"),
            ("change_task_status", "Can change the status of tasks"),
            ("close_task", "Can remove a task by setting its status as closed"),
        )
于 2012-04-08T14:57:37.277 に答える