何时以编程方式创建自定义Django权限?

Cra*_*tis 7 python django permissions

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)
Run Code Online (Sandbox Code Playgroud)

资源

我的问题是,其中的代码应该放置的位置.显然这些应该只创建一次,但我不想在shell中这样做.看起来这应该存储在某个文件中.(出于文档的缘故.)

Ars*_*eny 2

通常只需使用meta属性将所需的权限添加到相应的模型类中就足够了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"),
        )
Run Code Online (Sandbox Code Playgroud)

  • 我懂了。如果将其存储在固定装置中怎么办? (2认同)