2013-04-10 8 views
9

मेरे Views.py फ़ाइलों में शामिल हैं लगता है किटेम्पलेट टैग Django में काम नहीं कर

def homepage(request): 
     template = 'homepage.html' 
     list_display_template = 'list.html' 
     list = model.objects.all() 

     return render_to_response(template, 
      {'list_display_template': list_display_template, 
      'list' : list,}, 
      context_instance=RequestContext(request)) 

और मेरे homepage.html नीचे की तरह दिखता है नीचे: -

{% extends "base.html" %} 

    {% block main_content %} 
     {% include list_display_template %} 
    {% endblock %} 

और मेरे list_display_template (list.html) निम्नलिखित जानकारी

< div class= "span10"> 
    {% for item in list %} 
     <p> {{ item }}</p> 
     {% endfor %} 
    </div> 

उपर्युक्त विकास में ठीक काम करता है, लेकिन उत्पादन में टैग शामिल नहीं है और जब मैं तत्व का निरीक्षण करता हूं, तो यह list.html से कोई आइटम नहीं दिखा रहा है। क्या कोई इस के साथ मदद कर सकता है।

संपादित करें: - मेरी फ़ोल्डर संरचना नीचे

project_name/ 
    project_name/ 
     settings.py 
    static/ 
     css/ 
     images/ 
    templates/ 
     homepage.html 
     list.html 
     base.html 

धन्यवाद

+0

यदि आप करो '{% i अपने 'homepage.html' में 'list.html'%} 'को छोड़ दें, इसे काम करना चाहिए। – Ngenator

+0

क्या '{% शामिल है" list.html "%} 'काम करता है? – karthikr

+0

नहीं। उपर्युक्त दोनों काम नहीं करते हैं। मैंने पूर्ण पथनाम 'टेम्पलेट्स/list.html' देने का प्रयास किया ... यहां तक ​​कि यह काम नहीं करता – Dev

उत्तर

15

मैं एक ही समस्या थी के रूप में है, लेकिन मैं एक तरीका है कि एक ऐसी ही समस्या के साथ अन्य उपयोगकर्ताओं को समझ सकता हूँ में इस सवाल का जवाब होगा।

आपके पास शायद एचटीएमएल फ़ाइल, में किसी प्रकार का टेम्पलेट ब्लॉक है या तो यह ब्लॉक या तो किसी प्रकार की शामिल होने की उम्मीद कर रहा है या जिसकी त्रुटि है जिससे डीजेंगो गुजरता है और इसलिए आप सक्षम नहीं हैं त्रुटि देखें, यदि आप मूल टेम्पलेट में {% load someLoad %} का उपयोग करते हैं तो इसे शामिल HTML में भी उपयोग करें, मुझे लगता है कि यह संस्करण संस्करण से संस्करण में है।

{% load i18n %} 
{% load cms_tags sekizai_tags %} 
+1

यह है, शामिल टेम्पलेट में एक लापता लोड i18n ... ओकहम कभी विफल नहीं होता है। – TheBronx

+1

मुझे बस एक ही समस्या थी और इसके कारण लगभग पागल हो गया। इससे अधिक जटिल यह हुआ कि यह केवल उत्पादन सर्वर पर हुआ, न कि मेरी मशीन पर। बाद में, मुझे पता चला कि उस नेविगेशन बार जिसे मैंने 'शामिल' किया था, उसमें यूआरएल था कि मैंने स्लगिफाइफ़ नहीं किया जिससे बहुत सारी त्रुटियां हुईं लेकिन इन्हें शामिल कथन द्वारा चुप कर दिया गया। धन्यवाद^_^ – Zee

2

मैं सिर्फ एक समान समस्या थी:

मेरी (बहुत विशिष्ट) मामले में मैं यह शामिल html फ़ाइल में लापता था। मैं अस्थायी रूप से HTML (यानी, nav.html.html) को अस्थायी रूप से कॉपी और पेस्ट करके इसका निदान करने में सक्षम था जिसे मैं सीधे मूल पृष्ठ (base.html) में शामिल करना चाहता था। ऐसा लगता है कि यदि शामिल HTML में त्रुटियां हैं, तो यह केवल पढ़ने में नहीं आता है और कोई त्रुटि दिखाई नहीं देती है।

नेविगेशन.html से base.html में चिपकाए गए कोड के साथ मुझे 500 त्रुटि मिली क्योंकि नेविगेशन.html में नामित यूआरएल में से कोई भी विपरीत नहीं था।

1

यदि टेम्पलेट शामिल करने के साथ कोई समस्या/त्रुटि है, तो डिफ़ॉल्ट रूप से django त्रुटि नहीं दिखाएगा। आप इसे सेटिंग चर TEMPLATE_DEBUG = True का उपयोग करके सक्षम कर सकते हैं, फिर जब आप उस पृष्ठ को लोड करने का प्रयास करते हैं तो आप टेम्पलेट में त्रुटि को देख पाएंगे।

उपर्युक्त मामले में कुछ लोड टैग शामिल हो सकते हैं {% load xxx %} शामिल टेम्पलेट में।

+0

Django 1.8 और बाद में, आपको 'टेम्पलेट्स [0] ["विकल्प"] ["डीबग"]' '' True' के बजाय सेट करना चाहिए। – Flimm

0

एक और स्थिति है जहाँ एक बयान एक त्रुटि को ऊपर उठाने के बिना असफल हो जायेगी शामिल करता है, तो आप जो एक और फैली हुई है एक टेम्पलेट में काम कर रहे है, और अपने शामिल एक नामित ब्लॉक के बाहर है:

{% extends "my_base.html" %} 

{% block content %} 
    {{ block.super }} 
    {% include "partials/file1.html" %} 
{% endblock %} 

{% include "partials/file2.html" %} 

इस मामले में file2.html शामिल नहीं किया जाएगा क्योंकि यह किसी ब्लॉक में नहीं है, और आपको कोई चेतावनी संदेश नहीं मिलेगा, और यह पता लगाने से पहले कि आप क्या कर चुके हैं, सभी प्रकार की चीजों का प्रयास करेंगे :-)

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