2013-04-26 86 views
10

我已向模型添加权限,我想在管理员中使用此权限创建一个组。Django模型权限未在管理员身上拾取

问题是新权限没有在权限列表中列出。

有什么我需要做的将它添加到列表中?

class Meta: 
     permissions = (
      ("add_remove_job", "Can add/remove jobs"), 
     ) 

解决方案:它是南方的一个已知的限制,解决的办法是做执行syncdb --all

+0

既然你找到了你的解决方案,你应该选择给你解决方案的答案。 – Jeremy 2017-08-16 18:43:32

回答

2

你需要做的是执行syncdb每次添加/修改模型的权限。

python manage.py syncdb 
+0

没有工作,我试图syncdb 如果这意味着什么,我正在使用南进行数据库迁移。 – user2323711 2013-04-26 15:50:36

12

尝试:

manage.py syncdb --all 

否则,您可以强制Django的生成权限为特定的应用程序:

from django.contrib.auth.management import create_permissions 
from django.apps import apps 

create_permissions(apps.get_app_config('my_app_name')) 

这将做所有车型中应用。如果您只需要一个子集,您可以替换模型类对象的列表而不是'get_models()'。

+0

不幸的是,它不再支持Django 1.7。你必须从'django.apps import apps'调用'create_permissions(apps.get_app_config('my_app_name'))'但是(我想如果你使用迁移),它会在'if not router.allow_migrate(using,Permission )'没有做任何事情。 – yofee 2014-10-31 05:57:24

+0

重要的是使用South的应用程序的'--all'标志!谢谢。 – Caumons 2016-03-08 17:32:38

+0

在1.8中工作,谢谢! – Chris 2018-01-05 13:55:45

-3
python manage.py migrate --fake 
+1

它与这个问题有什么关系? – 2016-08-09 14:25:54