मैं एक Django अनुप्रयोग विकसित कर रहा हूं, जो एक बड़ी प्रणाली है जिसके लिए चीजों को साफ रखने के लिए कई उप-अनुप्रयोगों की आवश्यकता होती है। इसलिए, मेरे पास एक शीर्ष स्तरीय निर्देशिका है जो एक Django ऐप है (क्योंकि इसमें खाली models.py
फ़ाइल है), और कई उपनिर्देशिकाएं, जो स्वयं भी अनुप्रयोग हैं।Django उप-अनुप्रयोग और मॉड्यूल संरचना
कारण मैंने अपना आवेदन इस तरह से बाहर रखा है क्योंकि उप-अनुप्रयोग अलग हो गए हैं, लेकिन माता-पिता के आवेदन के बाहर उनका उपयोग कभी भी नहीं किया जाएगा। इसलिए उन्हें अलग से वितरित करने का कोई मतलब नहीं है।
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
... जो स्पष्ट रूप से करने से इनकी है:
जब मेरे आवेदन को स्थापित करने से, सेटिंग्स फ़ाइल कुछ इस तरह शामिल करने के लिए है। इसमें यह भी आवश्यक है कि सभी उप-अनुप्रयोगों को उनके "आंतरिक" नाम (यानी subapp1
, subapp2
इत्यादि) द्वारा संदर्भित किया जाए। - जो किसी अन्य अनुप्रयोग के नाम के साथ संघर्ष होने की संभावना है
python manage.py reset subapp1
यह कष्टप्रद है, विशेष रूप से, क्योंकि मैं एक उप एप्लिकेशन core
कहा जाता है: उदाहरण के लिए, अगर मैं subapp1 के लिए डेटाबेस तालिकाओं रीसेट करना चाहते हैं, मैं लिखने की आवश्यकता जब मेरा एप्लिकेशन किसी उपयोगकर्ता की प्रोजेक्ट में स्थापित होता है।
क्या मैं इसे पूरी तरह से गलत तरीके से कर रहा हूं, या क्या इन "आंतरिक" ऐप्स को उनके पूर्ण नाम से संदर्भित करने के लिए मजबूर किया गया है?
यह उप-इष्टतम क्यों है? क्या आप यह स्पष्ट कर सकते हैं कि आप क्या हासिल करना चाहते हैं? –
बस इसलिए, मेरे "एप्लिकेशन" को स्थापित करने के लिए, पैरेंट मॉड्यूल के भीतर प्रत्येक ऐप आवश्यक है, इसलिए यह वास्तव में डेटा का डुप्लिकेशंस है। साथ ही, अगर हम कभी भी उप-अनुप्रयोग जोड़ते हैं, तो उन्हें प्रत्येक इंस्टॉलेशन पर इंस्टॉल किए गए ऐप्स की सूची में जोड़ा जाना होगा। –