2010-05-19 10 views
33

मैं एक Django नौसिखिया हूँ, लेकिन प्रोग्रामिंग में काफी अनुभवी। मेरे पास संबंधित अनुप्रयोगों का एक सेट है जिसे मैं उप-एप्लिकेशन में समूह करना चाहता हूं लेकिन यह समझ नहीं सकता कि प्रबंधन मेरे लिए यह कैसे करें।मैं Django में उप-अनुप्रयोग कैसे बना सकता हूं?

आदर्श रूप में मैं की तरह एक संरचना के साथ खत्म हो जाएगा:

project/ 
    app/ 
     subapp1/ 
     subapp2/ 

मैं manage.py startapp app.subapp1 और manage.py startapp app/subapp1
की कोशिश की है, लेकिन यह मुझसे कहता है कि / और . एप्लिकेशन नाम के लिए अमान्य वर्ण हैं।

मैंने ऐप निर्देशिका में बदलने और ../manage.py subapp1 चलाने का प्रयास किया है, लेकिन यह शीर्ष स्तर पर supapp1 बनाता है। नोट, मैं सीधे स्टैंड-अलोन एप्लिकेशन बनाने की कोशिश कर रहा हूं। मैं यह सब एक परियोजना के भीतर से करने की कोशिश कर रहा हूं।

+1

क्या आप हमें बता सकते हैं कि आप ऐसा करने का प्रयास क्यों कर रहे हैं? ऐप क्या है और subapp1 और subapp2 क्या हैं? एक django ऐप अजगर मॉड्यूल का संग्रह है (और, जैसे Ignacio हमारे, पायथन पैकेज इंगित करता है) जो एक पूर्ण वेब अनुप्रयोग का प्रतिनिधित्व करता है। मैं यह नहीं समझ सकता कि आप क्या करने की कोशिश कर रहे हैं या लोग आपके प्रश्न को ऊपर क्यों उठा रहे हैं ... – cethegeek

+0

मेरी "ज़रूरत" का वर्णन मानक पुस्तक उदाहरण को विस्तारित करने के लिए भी किया जा सकता है जिसमें शैली भी शामिल है। यदि आप कल्पना करते हैं कि प्रत्येक शैली (एसएफ, कॉमेडी, नाटक, गैर-कथा) में मानक पुस्तक फ़ील्ड से परे अतिरिक्त डेटाबेस फ़ील्ड हैं। मैं पाइथन के लिए काफी नया हूं कि मुझे कक्षा विरासत (जैसे वर्ग एसएफबुक (पुस्तक)) की वास्तव में परवाह नहीं है, इस परियोजना के शुरुआती संस्करण के लिए सामान्य कोड का थोड़ा सा प्रतिलिपि बनाना ठीक होगा। लेकिन मैं सभी शैलियों को शीर्ष परियोजना स्तर पर रखने के बजाय सभी शैलियों को एक सामान्य निर्देशिका के तहत व्यवस्थित करने में रूचि रखता हूं। – jamida

+1

तो, चलिए एक पल के लिए विरासत भूल जाते हैं। पुस्तकों की विभिन्न शैलियों से निपटने के लिए सामान्य तरीकों की लाइब्रेरी रखने की बजाय आपकी योजना "सबैप्स" में एकाधिक निर्देशिकाओं में कोड दोहराना है? यह वास्तव में एक बुरा विचार है। वास्तव में बुरा, वास्तव में। हर बार जब आपके पास एक कोड परिवर्तन होता है जो विभिन्न शैलियों में कटौती करता है, तो आपको कई स्थानों पर कोड को छूने की आवश्यकता होगी। मुझे लगता है कि आपको अपने दृष्टिकोण पर थोड़ा सा पुनर्विचार करना होगा। "Subapps" आज़माने और आविष्कार करने का कोई अच्छा कारण नहीं है। – cethegeek

उत्तर

39

तुम अब भी ऐसा कर सकते हैं उन्हें आपकी सेटिंग्स में INSTALLED_APPS पर।

क्या यह आपके प्रश्न का उत्तर देता है? अन्यथा आपको यह बताने चाहिए कि आप क्या करने की कोशिश कर रहे हैं।

+1

इस तरह यह किया जाता है, लेकिन आमतौर पर कमांड को 'django-admin.py' कहा जाता है। साथ ही, 'INSTALLED_APPS' में आपको' project.app' और 'project.app.subapp1' आदि –

+0

डालने की आवश्यकता होगी किसी कारण से, django के मेरे संस्करण के साथ इसे 'dpyango-admin' कहा जाता है, बिना 'py', लेकिन कुछ अन्य कंप्यूटरों पर, मुझे 'django-admin.py' का उपयोग करना होगा ... – sebpiq

+1

@sebpiq' django-admin' आसानी से * उबंटू * में 'django-admin.py' के शॉर्टकट के रूप में उपयोग किया जाता है, यदि वह है आपके कंप्यूटर पर मामला – nerdoc

8

डीजेगो प्रति "उपप्रणाली" का समर्थन नहीं करता है। यदि आप किसी ऐप के भीतर पैकेज में कोड एकत्र करना चाहते हैं तो बस उन्हें स्वयं बनाएं। अन्यथा आप केवल दर्द के लिए पूछ रहे हैं। app

cd app 
django-admin startapp subapp1 

यह काम करेंगे (आवेदन बुनियादी संरचना बनाने), तथापि और subapp1 अभी भी अर्थ में दो असंबंधित अनुप्रयोगों तुम दोनों को जोड़ने के लिए है के रूप में विचार किया जाएगा:

6

अपने ऐप्स फ़ोल्डर पर जाएं। प्रयास करें:

python ../manage.py startapp app_name 
+0

यदि ऐप बनाया गया है, तो मेरी सेटिंग्स में कैसे जोड़ें? 'app.app_name' का उपयोग करें या अभी भी 'app_name' का उपयोग करें? – 244boy

2
django-admin.py startapp myapp /Users/jezdez/Code/myapp 

संदर्भ: Django Admin documentation

+0

हेहे टूटी हुई लिंक, जैसा भविष्यवाणी की गई थी! – ptim

+0

केवल लिंक जोड़ने के लिए, आप प्रलेखन का उपयोग करने में सक्षम होना चाहिए – dd42

6

Django documentation के अनुसार,

वैकल्पिक गंतव्य प्रदान की जाती है, तो Django कि मौजूदा निर्देशिका बल्कि एक नया बनाने की तुलना में प्रयोग करेंगे। वर्तमान कार्य निर्देशिका को इंगित करने के लिए आप '।' का उपयोग कर सकते हैं।

उदाहरण के लिए:

Django-व्यवस्थापक startapp MyApp/उपयोगकर्ताओं/jezdez/कोड/MyApp

तो, आप इस विधि द्वारा यह कर सकते हैं:

  1. में sub_app1 निर्देशिका बनाएं app निर्देशिका
  2. python manage.py startapp sub_app1 app/sub_app1
+1

यह स्वीकार्य उत्तर होना चाहिए। 'Manage.py' के साथ नया ऐप बनाने का सही तरीका:' python manage.py startapp name [directory] 'जहां 'name' ऐप नाम है और एक वैकल्पिक तर्क निर्देशिका है। सहायता से: * दिए गए ऐप नाम के लिए वर्तमान निर्देशिका या वैकल्पिक रूप से दिए गए निर्देशिका में दिए गए ऐप नाम के लिए एक Django ऐप निर्देशिका संरचना बनाता है। * – cezar

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