2011-11-16 13 views
6

मुझे लगता है कि मेरे पास बेहतर कोड संगठन के बारे में एक साधारण सवाल है।एकाधिक django ऐप्स एक दृश्य में

कहें कि मेरे पास एकाधिक ऐप्स हैं जो यह भी लागू करते हैं कि प्रस्तुति परत पर इन ऐप्स का प्रतिनिधित्व कैसे किया जाना चाहिए।

मैं समझने की कोशिश कर रहा हूं कि कोड को व्यवस्थित करने का तरीका क्या है यदि मुझे पाठ्यक्रम के फ्रेम का उपयोग किये बिना एक पृष्ठ पर एकाधिक ऐप्स प्रस्तुत करने की आवश्यकता है?

त्वरित उदाहरण: कहें कि मेरे पास दो लिंक (एप 1 और एप 2) दोनों हैं जो उनके अनुरूप मॉडल और विचारों को लागू करते हैं। अब मुझे इन दो विचारों की प्रस्तुति के लिए मेरे सूचकांक पृष्ठ की आवश्यकता है। मैं सामान्य दृश्य को कैसे कार्यान्वित कर सकता हूं जो अभी भी अपने मॉडल पर जाने के बजाय ऐप दृश्यों का उपयोग करता है? मैं अपने ऐप को अभी भी अपने दृश्य को नियंत्रित करने के लिए पसंद करूंगा।

धन्यवाद

उत्तर

5

मुझे लगता है कि आप ऐप्लिकेशन दृश्यों में इस प्रकार render_to_string शॉर्टकट उपयोग कर सकते हैं डाल:

render_to_string(somestuff) # instead of render() or render_to_responce() 

और उसके बाद इस तरह सूचकांक दृश्य कुछ में:

render(request, 'index.html', {'block1': view1(request), 'block2': view2(request)}) 

पुनश्च: इसके अलावा मैंने इसे लिखने के बाद यह बहुत अच्छा नहीं लग रहा है (यह मेरे सिर में बेहतर दिखता है :))।

+0

सज्जनो, ठोस सुझावों के लिए आपको balazs और Pill दोनों को धन्यवाद देने में देरी के लिए क्षमा चाहते हैं। जबकि मुझे लगता है कि दोनों ठोस हैं, मैं पिल्ल के जवाब के साथ जाऊंगा क्योंकि यह मेरी ज़रूरतों को पूरा करता है। – user1039384

+0

इसके अलावा, आपको अतिरिक्त विचार देने के लिए मुझे पिछले उत्तर में थोड़ा सा क्यों पसंद है: जबकि मुख्य उपयोग एक सीएसएस लिखना जितना आसान है जो ब्लॉक 1 और ब्लॉक 2 के स्थान को परिभाषित करता है और फिर टेम्पलेट में वास्तविक {{block1} } और {{block2}} संबंधित divs के तहत, दूसरा मान यह है कि ऐप क्लास उस विधि का उपयोग अपने स्वयं के टेम्पलेट को प्रस्तुत करने के लिए भी कर सकती है यदि आवश्यक हो तो केवल उस ऐप के लिए जानकारी प्रस्तुत करे। तो तर्क प्रत्येक प्रतिनिधित्व से जुड़ा होगा जो यह तय करना चाहता है कि ऐप और ऐप कहां दिखाना है, इसके डेटा के वास्तविक प्रतिनिधित्व के लिए जिम्मेदार होगा। एक बार फिर धन्यवाद – user1039384

3

महान प्रश्न, मैं आपको बताता हूं कि मैंने यह कैसे किया।

मैंने (ऐप विशिष्ट) कस्टम टेम्पलेट टैग का उपयोग किया। ये टेम्पलेट टैग संदर्भ में अतिरिक्त सामान डालते हैं, आप अपने टेम्पलेट्स में क्या उपयोग कर सकते हैं। आप कस्टम टेम्पलेट टैग के बारे में docs से अधिक पढ़ सकते हैं।

एक अच्छी किताब है, Practical django Projects 2nd edition, जो मुझे लगता है कि थोड़ा पुराना है, लेकिन आपको परियोजना संगठन के लिए एक महान अंतर्दृष्टि देता है।

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