from itertools import izip
from django.contrib.auth.models import Permission, Group
def pairwise(iterable):
"s -> (s0,s1), (s2,s3), (s4, s5), ..."
a = iter(iterable)
return izip(a, a)
def get_permissions(permlist):
pm = [{'codename':b, 'content_type__app_label': a} for p in permlist for a, b in pairwise(p.split('.'))]
return [Permission.objects.get(**p) for p in pm]
group = Group.objects.get(name='groupname')
group.permissions = get_permissions([
'app1.perm_codename1',
'app2.perm_codename2',
'app3.perm_codename3',
'app4.perm_codename4'])
目前,我提出的最佳解决方案是:
相关问题 更多 >
编程相关推荐