问题 Django模型权限未在管理员上获取


我已经为我的模型添加了权限,我想在管理员中创建一个使用此权限的组。

问题是新权限未列在权限列表中。

我需要做些什么才能将它添加到该列表中?

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

解决方案:这是South的已知限制,解决方案是执行syncdb --all


6254
2018-04-26 12:05


起源

由于您找到了解决方案,因此您应该选择能够为您提供解决方案的答案。 - Jeremy


答案:


尝试:

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()'。


12
2018-06-19 23:10



不幸的是,不再使用Django 1.7了。你必须 from django.apps import apps 然后打电话 create_permissions(apps.get_app_config('my_app_name')) 但是(我认为如果你使用迁移)它会在之后返回 if not router.allow_migrate(using, Permission) 什么也没做 - yofee
重要的是 --all 使用南方的应用程序标志!谢谢。 - Caumons
适用于1.8,谢谢!! - Chris


每次添加/修改模型的权限时,您需要做的是syncdb。

 python manage.py syncdb

2
2018-04-26 12:15



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


python manage.py migrate --fake

-4
2017-08-09 10:28



它与这个问题有什么关系? - Laur Ivan