【问题标题】:Django - Granting custom permissions to a userDjango - 向用户授予自定义权限
【发布时间】:2012-02-25 02:52:01
【问题描述】:

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

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' 权限?)

【问题讨论】:

    标签: django permissions django-admin admin


    【解决方案1】:

    向 Meta 添加权限不足以在管理面板中看到它。 Meta 中定义的权限仅用于在运行manage.py syncdb 时在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      相关资源
      最近更新 更多