मैं में एक समान, अरे ... संदर्भ Jarret हार्डी के "कम तकनीक" दृष्टिकोण अपनाया है (हाँ, यह एक यमक ... जो आप के लिए एकदम सही मतलब नहीं होगा जब तक कि मैं आपको बता दूँ कि मैं नौसेना नहीं कर रहा था, लेकिन यह दिखाने के लिए बटनों के सीमा रंग को सेट किया गया था कि कौन सा दबाया गया था)।
लेकिन मेरा संस्करण थोड़ा और कॉम्पैक्ट है जो मुझे लगता है। दृश्य में केवल एक साधारण संदर्भ परिवर्तनीय सक्रियबार को परिभाषित करने के बजाय, मैं एक शब्दकोश देता हूं, लेकिन हमेशा केवल एक कुंजी-मूल्य जोड़ी के साथ: उदा। activebar = {'foo': 'active'}।
फिर टेम्पलेट में मैं बस foo एंकर में वर्ग = "{{activebar.foo}}" लिखता हूं, और अन्य एंकरों में संगत रूप से लिखता हूं। अगर केवल activbar.foo को "सक्रिय" मान के लिए परिभाषित किया गया है तो बार एंकर में activebar.bar कुछ भी नहीं करेगा। शायद "चुपचाप विफल" उचित Django बात है। और बॉब का चाचा।
संपादित करें: ओह ... कुछ दिन बीत चुके हैं, और जब मैंने ऊपर लिखा था, तो मेरे लिए काम किया गया था जब मैं नेविबार में लक्ष्य के रूप में एक नई खिड़की के साथ एक एंकर लगाया। यह एक अजीब गड़बड़ी का कारण प्रतीत होता था: नई विंडो (फ़ायरफ़ॉक्स में टैब) पर क्लिक करने के बाद और फिर उस पर लौटने के बाद जिस पर नई विंडो लॉन्च की गई थी, जब भी मैं जल्दी से स्थानांतरित हो गया तब नेवबार के नीचे प्रदर्शन का भाग रिक्त हो गया नेबर पर वस्तुओं पर कर्सर --- कुछ भी क्लिक किए बिना। मुझे स्क्रॉल बार को स्थानांतरित करके एक स्क्रीन रेड्रो को मजबूर करना पड़ा (पृष्ठ रीलोड नहीं, हालांकि यह भी काम करता था क्योंकि इसमें स्क्रीन रीड्रा शामिल है)।
मुझे यह पता लगाने के लिए बहुत कुछ नहीं है कि ऐसा क्यों हो सकता है। और यह संभव है कि मैंने कुछ और किया जिससे किसी समस्या का कारण बन गया। लेकिन ... मुझे एक आसान दृष्टिकोण मिला जो मेरे लिए पूरी तरह से काम कर रहा है। मेरी परिस्थितियां ये हैं कि एक दृश्य से लॉन्च किए गए प्रत्येक बच्चे टेम्पलेट को एक सक्रिय नेविबार आइटम को "सक्रिय" के रूप में दिखाया जाना चाहिए। दरअसल, वह navbar आइटम वह है जिसने उस दृश्य को लॉन्च किया जिसने बाल टेम्पलेट लॉन्च किया - सामान्य सौदा।
मेरा समाधान --- चलिए एक उदाहरण के रूप में "लॉगिन" नेविबार आइटम लेते हैं --- इसे उस बच्चे टेम्पलेट में रखना है जिसमें लॉगिन फ़ॉर्म है।
{% block login %}active{% endblock %}
मैं इसे शीर्षक ब्लॉक नीचे में डाल, लेकिन मैं प्लेसमेंट कोई फर्क लगता नहीं है। फिर उस नेवबार परिभाषा ली टैग कि लॉगिन नेवबार आइटम मैं डाल के लिए लंगर चारों ओर से घेरे ... अच्छी तरह से करने के लिए, यहाँ शामिल माता पिता टेम्पलेट में कोड है:
<li class="{% block login %}{% endblock %}"><a href="/mysite/login">Login</a></li>
इस प्रकार जब बच्चे टेम्पलेट प्रदान की गई है अभिभावक लॉगिन के रूप में लॉगिन navbar आइटम दिखाएगा, और बॉब अभी भी आपके चाचा।
ऊपर वर्णित शब्दकोश दृष्टिकोण यह दिखाने के लिए था कि बटन की एक पंक्ति दबा दी गई थी, जब वे सभी एक ही बच्चे के टेम्पलेट पर थे। यह अभी भी मेरे लिए काम कर रहा है और चूंकि केवल एक ही बच्चा टेम्पलेट शामिल है, मुझे नहीं लगता कि उस परिस्थिति में नौसेना के लिए मेरी नई विधि कैसे काम करेगी। ध्यान दें कि Navbars विचारों के लिए नई विधि के साथ भी शामिल नहीं हैं। सरल!
क्या आपने इसे चेक आउट किया है? http://stackoverflow.com/questions/1024168/django-is-there-a-better-way-to-bold-the-current-page-link – rinti
वह सीएसएस समाधान बनाए रखने के लिए बहुत कठिन लग रहा है और उसे जोड़ने की आवश्यकता है 3 अलग-अलग स्थानों में। हाई-टेक दृष्टिकोण के लिए – Boris