我已向模型添加權限,我想在管理員中使用此權限創建一個組。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