2012-02-02 3 views
2

사용자에게 사용자 권한을 부여하면 다음과 실제로하지만 장고 관리 사이트의 프로필 개체를 볼 때장고 - 내가로 정의 된 사용자 지정 권한이있는 사용자 프로파일 모델이

class Profile(models.Model): 

    # A few profile fields here... 

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

, 그렇게하지 실제로이 권한을 사용자에게 부여하는 방법을 참조하십시오.

가장 쉬운 방법은 무엇입니까? (예 : 사용자 Joe에게 'can_approve'권한을 부여 하시겠습니까?)

답변

5

메타에 권한을 추가하는 것만으로는 관리자 패널에서 볼 수 없습니다. Meta에 정의 된 사용 권한은 manage.py syncdb을 실행할 때 auth_permission 테이블에서 사용 권한을 만드는 경우에만 사용됩니다.

syncdb를 실행하거나 데이터베이스에 수동으로 권한을 추가하거나 코드에서 권한을 만드십시오. db에 추가 된 후 관리자 패널에 표시됩니다.

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) 
관련 문제