2013-07-31 7 views
9

ऐसा लगता है कि यह आसान होना चाहिए लेकिन मुझे कुछ गलत करना होगा। मैंने पहले व्यक्तिगत ऐप्स के लिए व्यवस्थापक टेम्पलेट्स बढ़ाए हैं, लेकिन यह पहली बार है जब मैंने बोर्ड में कुछ संशोधित करने का प्रयास किया है।मैं django व्यवस्थापक/base.html टेम्पलेट को सही तरीके से कैसे बढ़ा सकता हूं?

मैं पूरे व्यवस्थापक में सहायता टेक्स्ट का रंग बदलना चाहता हूं, इसलिए मैं base.html टेम्पलेट के एक्स्ट्रास्टाइल ब्लॉक को विस्तारित करना चाहता हूं।

तो मेरी मुख्य टेम्पलेट्स फ़ोल्डर में मैं इसे में इस कोड के साथ बनाया व्यवस्थापक/base.html:

{% extends 'admin/base.html' %} 

{% block extrastyle %} 
    {# Changing the color of the help text across the entire admin #} 
    <style> 
     .help, p.help { 
      font-size: 10px !important; 
      color: #f00; 
     } 
    </style> 
{% endblock %} 

अब, जब मैं कोशिश करते हैं और व्यवस्थापक का उपयोग, सर्वर पूरी तरह से एक 'बस 10' के साथ दुर्घटनाओं त्रुटि। मेरा मानना ​​है कि ऐसा इसलिए है क्योंकि यह खुद को विस्तारित करने की कोशिश कर रहा है। चूंकि Django मेरे ऐप टेम्पलेट फ़ोल्डर्स में पहले दिखता है, {% विस्तार 'व्यवस्थापक/base.html'%} खुद को पहले पाता है और दुनिया विस्फोट हो जाता है।

हालांकि, अगर मैं कहीं भी बेस एचटीएमएल रखने की कोशिश करता हूं तो यह काम नहीं करता है। अगर मैं इसे अपने किसी एक ऐप में रखता हूं तो यह केवल उस ऐप के लिए काम करता है, लेकिन अगर मैं इसे कहीं और रखता हूं तो इसे सिर्फ अनदेखा किया जाता है।

मेरी समझ से यह django टेम्पलेट को ओवरराइड करने के बजाय विस्तार करने का सबसे अच्छा अभ्यास है, इसलिए मैं यह काम करना चाहता हूं। हालांकि अगर मैं इसे करने का एकमात्र तरीका इसे ओवरराइड कर रहा हूं, तो वह मार्ग है जिसे मैं ले जाऊंगा।

उत्तर

17

दरअसल, आपकी समस्या एक अनंत रिकर्सन लूप है क्योंकि base.html स्वयं को विस्तारित करता है।

प्राप्त करने के लिए आप क्या चाहते हैं आप चाहिए ओवरराइड व्यवस्थापक/base_site.html बजाय (बदले में base.html फैली है)। इस तरह आप केवल उन ब्लॉकों को प्रतिस्थापित कर सकते हैं जिनमें आप रुचि रखते हैं।

+0

आह, यही वह है जिसे मैं ढूंढ रहा था। धन्यवाद! –

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