2013-04-26 22 views
10

पर Django मॉडल अनुमतियां नहीं उठाई गईं मैंने अपने मॉडल को अनुमति दी है और मैं इस अनुमति का उपयोग करने वाले व्यवस्थापक में एक समूह बनाना चाहता हूं।व्यवस्थापक

समस्या यह है कि अनुमति अनुमति सूची में नई अनुमति सूचीबद्ध नहीं है।

क्या मुझे उस सूची में जोड़ने के लिए कुछ करने की ज़रूरत है?

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

समाधान: यह दक्षिण की एक ज्ञात सीमा है, समाधान -सभी syncdb करना है

+0

चूंकि आपको अपना समाधान मिला, तो आपको उस समाधान का चयन करना चाहिए जिसने आपको समाधान दिया है। – Jeremy

उत्तर

2

आपको क्या करने की जरूरत है एक syncdb हर बार जब आप जोड़ सकते हैं/एक मॉडल के लिए किसी अनुमति संशोधित है।

python manage.py syncdb 
+0

काम नहीं किया, मैंने सिंकडब करने की कोशिश की, यदि मैं इसका मतलब कुछ करता हूं तो डीबी माइग्रेशन के लिए दक्षिण का उपयोग कर रहा हूं। – user2323711

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 आयात ऐप्स' से होना चाहिए और फिर 'create_permissions (apps.get_app_config (' my_app_name ')) पर कॉल करना होगा, लेकिन (मुझे लगता है कि अगर आप माइग्रेशन का उपयोग करते हैं) तो यह राउटर.allow_migrate (उपयोग, अनुमति,) 'कुछ भी किए बिना। – yofee

+0

दक्षिण का उपयोग कर ऐप्स के लिए '--all' ध्वज महत्वपूर्ण है! धन्यवाद। – Caumons

+0

1.8 में काम करता है, धन्यवाद !! – Chris

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

यह सवाल से कैसे संबंधित है? –

संबंधित मुद्दे