2012-02-02 37 views
2

我有一個用戶配置文件模型定義爲一個自定義的權限如下:Django的 - 授予自定義權限用戶

class Profile(models.Model): 

    # A few profile fields here... 

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

當我真正看到在Django管理站點配置文件對象,雖然,我不知道看到任何實際向用戶授予此權限的方式。

這樣做最簡單的方法是什麼? (例如,給用戶Joe「can_approve」權限?)

回答

5

向管理面板中添加對元的權限是不夠的。在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)