Django - 向用户授予自定义权限

标签 django permissions django-admin admin

我有一个用户配置文件模型,其自定义权限定义如下:

class Profile(models.Model):

    # A few profile fields here...

    class Meta:
        permissions = (
            ('can_approve', _(u'Can review and approve new accounts')),
        )

当我实际查看 Django 管理站点中的 Profile 对象时,我没有看到任何方法来实际向用户授予此权限。

最简单的方法是什么? (例如,授予用户 Joe 'can_approve' 权限?)

最佳答案

向 Meta 添加权限不足以在管理面板中看到它。 Meta 中定义的权限仅用于在运行 manage.pysyncdb 时在 auth_permission 表中创建权限。

尝试运行syncdb,或手动将权限添加到数据库或从代码创建权限。添加到数据库后,它将在管理面板中可见。

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

content_type = ContentType.objects.get(app_label='myapp', model='Profile')
permission = Permission.objects.create(codename='can_approve',
                                   name=_(u'Can review and approve new accounts'),
                                   content_type=content_type)

关于Django - 向用户授予自定义权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112532/

相关文章:

mysql - 如何在 Queryset extra>select 中使用 SQL 通配符 %?

python - Django Admin changeform_view 方法不允许打开编辑数据

python - 修改 TabularInline 中元素的呈现

permissions - 使用 minGW 和 MSYS 在 Windows 上构建 libav 时出错

python - 在模板上显示 Django 管理操作

Django admin list_display 换行符

python - 加载缓慢 Django 管理员更改/添加

python - Python 中的菱形继承(钻石问题) : Call method from all parent classes

linux - 在 Linux 中对文件具有可执行权限有哪些安全风险?

ios - iOS上的Twitter-如何授予发布推文的权限?