2011-07-04 7 views
12

विचार पृष्ठ पर एकाधिक विजेट्स रखना है और सभी जेएस और सीएसएस फ़ाइलों को इस 'विजेट' के रूप में आवश्यक बनाने की आवश्यकता है (इस तरह फाइलों को प्रबंधित करना आसान है) । डुप्लिकेट फाइलें कोई समस्या नहीं है।django टेम्पलेट्स - शामिल टेम्पलेट में block.super का उपयोग करना विफल रहता है (अपवाद)

PARENT:

{%block js%} 
{%endblock%} 

विजेट

{%block js%} 
    {{block.super}} 
    ///my widget spectyfic JS 
{%end block%} 
प्रत्येक विजेट के टेम्पलेट विजेट के टेम्पलेट के अंदर मैं माता पिता के ब्लॉक करने के लिए सामग्री जोड़ने के लिए कोशिश कर रहा हूँ से द्वारा {%% शामिल} एक पेज में शामिल किया गया है

इस {{block.super}}: Caught AttributeError while rendering: 'BlockNode' object has no attribute 'context'

के साथ एक त्रुटि दे रहा है मुझे यकीन है कि और कैसे मैं ब्लॉक विस्तार कर सकते हैं नहीं कर रहा हूँ ... ऐसा लगता है django में असंभव है ... कोई विचार? परिभाषित कई ब्लॉकों काम करेंगे नहीं हम नहीं जानते कि कितने विभिन्न विजेट क्या नाम के साथ हम प्रत्येक पृष्ठ पर होगा ... (और यह एक nemplate की चिंता नहीं है)

+1

हाय रॉबर्टज़ पर एक नज़र डालें, मुझे भी एक ही समस्या का सामना करना पड़ रहा है। क्या आपको समाधान मिला है? कृपया इस पर मेरी सहायता करें। – PythonDev

उत्तर

14

the docs से:

नोट

include टैग "इस subtemplate प्रस्तुत करना और एचटीएमएल में शामिल हैं", नहीं के रूप में "इस subtemplate पार्स और उसकी सामग्री को शामिल जैसे कि वह माता-पिता का हिस्सा थे" के एक कार्यान्वयन के रूप में माना जाना चाहिए। इसका मतलब है कि शामिल टेम्पलेट्स के बीच कोई साझा स्थिति नहीं है - प्रत्येक में एक पूरी तरह से स्वतंत्र प्रतिपादन प्रक्रिया शामिल है।

आप block.super तो काम करने के लिए चाहते हैं, तो आप के बजाय extends उपयोग करने के लिए की जरूरत है।

2

मुझे यह बहुत देर हो चुकी है लेकिन मुझे कुछ समाधान हो सकता है। Django-sekizai का उपयोग करके आप एक स्थान पर जेएस और सीएसएस लोड कर सकते हैं। http://django-sekizai.readthedocs.org/en/latest/

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