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)

来源

我的问题是这段代码应该放在哪里。显然这些应该只创建一次,但我不想在 shell 中这样做。似乎这应该存储在某个文件中。(为了文档的缘故。)

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 回答