लघु संस्करण:Django: मैं टेम्पलेट से कॉलिंग व्यू को कैसे पहचान सकता हूं?
वहाँ एक सरल, निर्मित अतिरिक्त संदर्भ चर गुजर बिना, एक Django टेम्पलेट में बुला दृश्य पहचान करने के लिए रास्ता नहीं है?
लांग (मूल) संस्करण:
मेरी Django एप्लिकेशन में से एक कई अलग अलग दृश्य दिखाई देते हैं, अपने स्वयं के नाम पर रखा गया URL पैटर्न के साथ प्रत्येक, बस इतना ही प्रस्तुत करना ही टेम्पलेट। टेम्पलेट कोड की एक बहुत छोटी मात्रा है जिसे कॉल किए गए दृश्य के आधार पर बदलने की जरूरत है, प्रत्येक दृश्य के लिए अलग-अलग टेम्पलेट्स सेट करने के ओवरहेड के लायक होने के लिए बहुत छोटा है, इसलिए आदर्श रूप से मुझे टेम्पलेट में कॉलिंग व्यू को पहचानने का तरीका ढूंढना होगा ।
मैं अतिरिक्त संदर्भ चर में पारित करने के लिए (उदाहरण के लिए "VIEW_NAME") बुला दृश्य पहचान करने के लिए दृश्य सेट अप कर लिया है की कोशिश की है, और मैं भी {% ifequal request.path "/some/path/" %}
तुलना उपयोग करने की कोशिश की है, लेकिन इनमें से कोई समाधान विशेष रूप से सुंदर लगती है। क्या टेम्पलेट से कॉलिंग व्यू को पहचानने का कोई बेहतर तरीका है? क्या दृश्य के नाम, या यूआरएल पैटर्न का नाम एक्सेस करने का कोई तरीका है?
अद्यतन 1: टिप्पणी है कि इस बस मुझे MVC गलतफहमी का एक मामला है के बारे में, मैं MVC समझते हैं, लेकिन Django's not really an MVC framework। मेरा मानना है कि जिस तरह से मेरा ऐप स्थापित किया गया है, वह डीजेंगो के एमवीसी पर ले जाने के अनुरूप है: विचार का वर्णन करते हैं जो डेटा प्रस्तुत किया गया है, और टेम्पलेट्स डेटा का विवरण का वर्णन करता है। ऐसा होता है कि मेरे पास कई विचार हैं जो अलग-अलग डेटा तैयार करते हैं, लेकिन यह सभी एक ही टेम्पलेट का उपयोग करते हैं क्योंकि डेटा सभी विचारों के लिए समान तरीके से प्रस्तुत किया जाता है। यदि यह मौजूद है, तो मैं टेम्पलेट से कॉलिंग व्यू को पहचानने का एक आसान तरीका ढूंढ रहा हूं।
अद्यतन 2: सभी उत्तरों के लिए धन्यवाद। मुझे लगता है कि सवाल पर विचार किया जा रहा है - जैसा कि मेरे मूल प्रश्न में बताया गया है, मैंने पहले से ही सभी सुझाए गए समाधानों पर विचार किया है और कोशिश की है - इसलिए मैंने इसे प्रश्न के शीर्ष पर अब "लघु संस्करण" में डिस्टिल्ड कर दिया है । और अभी ऐसा लगता है कि अगर कोई "पोस्ट" पोस्ट करना था, तो यह सबसे सही जवाब होगा :)
अपडेट 3: कार्ल मेयर ने "नहीं" पोस्ट किया :) धन्यवाद, हर कोई।
मुझे यकीन नहीं है कि क्या मैं एक कारण के बारे में सोच सकता हूं कि अलग-अलग विचारों को एक ही टेम्पलेट को क्यों कॉल किया जाना चाहिए? क्या आप विस्तार से समझा सकते हैं? मुझे लगता है कि यह एक मामला हो सकता है कि आपने एमवीसी अवधारणा को गलत समझा है – Mez
टिप्पणी के लिए धन्यवाद। प्रत्येक विचार एक अलग ओआरएम क्वेरी करता है, लेकिन सभी आउटपुट एक ही प्रारूप में हैं, इसलिए DRY के लिए आम टेम्पलेट। मैंने आगे के विवरण के साथ प्रश्न संपादित किया है। – bryan
मैं टेम्पलेट में एक अतिरिक्त संदर्भ चर पारित करने के साथ जाऊंगा। सरल, नो-ब्रेनर समाधान। क्यों नहीं? – codeape