2010-01-07 11 views
7

मैंने एक ऐप को एक और ऐप के अंदर डालने की कोशिश की (बाहरी एक आंतरिक अंदर एक मुखौटा है, इसलिए उन्हें उस तरह से ढूंढने के लिए समझ में आया), और यह उस आंतरिक ऐप में मॉडल के लिए एक टेबल नहीं बनाता है। क्या यह सामान्य है? (ऐप स्थापित है, और व्यवस्थापक के साथ पंजीकृत)Django: क्या मेरे पास किसी अन्य ऐप के उप फ़ोल्डर में ऐप हो सकता है?

+2

सुनिश्चित नहीं है, लेकिन आपको जोड़ने की आवश्यकता हो सकती है 'INSTALLED_APPS' की सूची में आंतरिक ऐप 'outer_app_name.inner_app_name'' के रूप में। –

+0

हाँ, यह काम करता है। मेरे पास एक बहुत ही सिंटैक्स त्रुटि थी, यह क्यों काम नहीं कर रहा था, लेकिन आईडी को syncdb के दौरान त्रुटि नहीं मिली। – orokusaki

उत्तर

5

Django INSTALLED_APPS सेटिंग में प्रत्येक पैकेज के models मॉड्यूल को आयात करके मॉडल लोड करता है। उदाहरण के लिए, INSTALLED_APPS('django.contrib.admin', 'django.contrib.comments', 'spam.ham', and 'eggs') की सेटिंग के साथ, Django django.contrib.admin.models, django.contrib.comments.models, spam.ham.models, और eggs.models से मॉडल आयात करेगा।

यदि आप केवल INSTALLED_APPS में अपना बाहरी ऐप सूचीबद्ध कर रहे हैं (हम मान लेंगे कि इसका नाम eggs है), तो केवल के मॉडल आयात और बनाए जा रहे हैं। अपने आंतरिक ऐप से मॉडल स्थापित करने के लिए, आपको इसे INSTALLED_APPS पर भी जोड़ना होगा, जैसे eggs.inner_app, ताकि eggs.inner_app.models आयात हो जाए। (विदेशी कुंजी की सुविधा के लिए, मुझे पूरा यकीन है कि यदि आप एक ऐप से मॉडल को models.py फ़ाइल में आयात करते हैं, तो स्कैन किए जाने वाले models.py फ़ाइल में परिभाषित मॉडल ही बनाए जाते हैं।)

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