2013-09-24 3 views
2

django-guardian을 사용하여 작업에 대한 사용자 권한을 할당하려고하는데 오류가 발생했습니다. 작업/models.py 내 작업 클래스의 내부 장고 - 후견인의 assign_perm이 나에게 DoesNotExist 오류를주는 이유는 무엇입니까?

, 나는이 :

class Meta(BaseModel.Meta): 
    permissions = (
     ("task_view", "Person can view task details"), 
    ) 

것은 내가

python manage.py shell

로 가서 그 권한을 할당 할 때, 에러가 발생합니다.

from profiles.models import SiteUser 
from task.models import * 
from guardian.shortcuts import assign_perm 
siteuser = SiteUser.objects.get(id=2454) 
task = Task.objects.get(name="asdf") 
assign_perm('task_view', siteuser, task) 

을 그리고 여기 오류입니다 :

DoesNotExist: Permission matching query does not exist.

사람이 내가 잘못 알고 있나요 여기

내가 시도하고있어 무엇인가? 장고 - 수호자의 도움을 받았다고 생각하지만 어쩌면 내가 놓친 것일까 요? 당신은 당신이 권한에 할당 할 수 있습니다 전에 syncdb를 할 필요가 같은

답변

2

확인을 보이는 : 그레고리 Goltsov의 의견에 따라

python manage.py syncdb --all 
+1

[django-extensions] (http://django-extensions.readthedocs.org/en/latest/)의'update_permissions' 관리 명령을 사용할 수도 있습니다. – gregoltsov

0

을, 장고 1.8 나는 때 부르는 update_permissions 프로그래밍 방식 장고-확장을 호출 결국 나는 내가 원하는 그룹에 할당하기 전에 필요한 모든 권한이이 시점에 최대 post_migration

from django.core import management 
from guardian.shortcuts import assign_perm 
from django.contrib.auth.models import Permission, Group 

def create_user_groups(sender, **kwargs): 
    management.call_command('update_permissions') 
    group, created = Group.objects.get_or_create(name='personal') 
    if created: 
     assign_perm('core.view_savedlocation', group) 

    group, created = Group.objects.get_or_create(name='business') 
    if created: 
     assign_perm('core.add_savedlocation', group) 
     assign_perm('core.change_savedlocation', group) 
     assign_perm('core.view_savedlocation', group) 
     assign_perm('core.delete_savedlocation', group) 

이 방법을한다.