2013-04-26 89 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