我已向模型添加权限,我想在管理员中使用此权限创建一个组。Django模型权限未在管理员身上拾取
问题是新权限没有在权限列表中列出。
有什么我需要做的将它添加到列表中?
class Meta:
permissions = (
("add_remove_job", "Can add/remove jobs"),
)
解决方案:它是南方的一个已知的限制,解决的办法是做执行syncdb --all
我已向模型添加权限,我想在管理员中使用此权限创建一个组。Django模型权限未在管理员身上拾取
问题是新权限没有在权限列表中列出。
有什么我需要做的将它添加到列表中?
class Meta:
permissions = (
("add_remove_job", "Can add/remove jobs"),
)
解决方案:它是南方的一个已知的限制,解决的办法是做执行syncdb --all
你需要做的是执行syncdb每次添加/修改模型的权限。
python manage.py syncdb
没有工作,我试图syncdb 如果这意味着什么,我正在使用南进行数据库迁移。 – user2323711 2013-04-26 15:50:36
尝试:
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()'。
不幸的是,它不再支持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
重要的是使用South的应用程序的'--all'标志!谢谢。 – Caumons 2016-03-08 17:32:38
在1.8中工作,谢谢! – Chris 2018-01-05 13:55:45
python manage.py migrate --fake
它与这个问题有什么关系? – 2016-08-09 14:25:54
既然你找到了你的解决方案,你应该选择给你解决方案的答案。 – Jeremy 2017-08-16 18:43:32