2012-09-04 25 views
8

मैं div रों है कि क्या एक डेटाबेस प्रविष्टि बना दिया गया है पर निर्भर है दिखाने के लिए कोशिश कर रहा हूँ:यदि चर और चर परिभाषित किया गया है - jinja2

<table class="info-table"> 
<tr><td> 
<div class="info-table_titlebox"> 
{% if post.wrk_1_title is defined %} 
    <div class="info-title_title"> 
    <h2>{{post.wrk_1_title}}</h2> 
    <h3>Facilitator: {{post.wrk_1_facilitator}}</h3> 
    <h4>Location: {{post.wrk_1_locate}}</h4> 
    <h4>Max participants: {{post.wrk_1_max}}</h4> 
    </div> 
    <div class="info-title_list"> 
     <ul> 
     <li>{{post.eventday}} - <b>Week {{post.eventweek}}</b></li> 
     <li class="info-title_listright">{{post.wrk_1_time}}</li> 
     </ul> 
    </div> 
    <p>{{post.wrk_1_description}}</p> 
{% endif %} 
</div> 
</td> 
<td> 
<div class="info-table_titlebox"> 
{% if post.wrk_1_title is defined and post.wrk_2_title is defined %} 
    <div class="info-title_title"> 
    <h2>{{post.wrk_2_title}}</h2> 
    <h3>Facilitator: {{post.wrk_2_facilitator}}</h3> 
    <h4>Location: {{post.wrk_2_locate}}</h4> 
    <h4>Max participants: {{post.wrk_2_max}}</h4> 
    </div> 
    <div class="info-title_list"> 
     <ul> 
     <li>{{post.eventday}} - <b>Week {{post.eventweek}}</b></li> 
     <li class="info-title_listright">{{post.wrk_2_time}}</li> 
     </ul> 
    </div> 
    <p>{{post.wrk_2_description}}</p> 
{% endif %} 
</div> 
</td> 

यह एक सरल टुकड़ा है - तर्ज पर किया जाता है। मूल रूप से यदि डेटाबेस डेटाबेस में है तो केवल div1 दिखाएं यदि title 1 और title 2 दोनों डेटाबेस शो div1 और div2 और अन्य में हैं।

वर्तमान में इस तरह के काम करता है क्योंकि यह div दिखाता है लेकिन कुछ कारणों से यह अगले भी दिखाता है। अगर मैं div 1 के लिए शीर्षक है यह 1 और 2 से पता चलता है, अगर मैं div 1 और 2 के लिए एक शीर्षक है यह पता चलता है 1, 2, and 3

मैं वास्तव में उलझन में के रूप में मैं वास्तव में Jinja2 लिए नया हूँ हूँ। मुझे यकीन नहीं है कि यह HTML में सिंटैक्स की स्थिति है, या यदि वाक्यविन्यास गलत है, या यदि आप दो चरों में जांच नहीं कर पा रहे हैं ... किसी भी मदद की सराहना की जाएगी।

+0

क्या आप वाकई जिंजा चर संदर्भ में परिभाषित नहीं कर रहे हैं कर रहे हैं? अगर आप post.wrk_1_title को परिभाषित कर चुके हैं और post.wrk_2_title को परिभाषित किया गया है तो% 2 को विभाजित करके आप हमेशा परीक्षण कर सकते हैं और परिणामस्वरूप एचटीएमएल में देखें। – voscausa

+0

@ वोकौसा मुझे लगता है कि मैं किस तरह से परिभाषित साधनों को अनिश्चित करता हूं, मुझे लगता है कि डेटाबेस में एक प्रविष्टि कब की जाती है लेकिन फ़ॉर्म सबमिशन से कुछ भी नहीं जोड़ा जाता है जिसका अर्थ यह है कि जब यह प्रविष्टि डेटाबेस से पुनर्प्राप्त की जाती है तो पहले "अपरिभाषित" यह "कोई नहीं" के रूप में आ जाएगा लेकिन ऐसा लगता है कि यह एक प्रविष्टि बनाता है ... शायद एक खाली स्ट्रिंग? इसलिए यदि कोई प्रविष्टि है तो "परिभाषित" की जांच करके यह यह div दिखाएगा। – Jesse

+0

किसी भी मान के साथ एक चर परिभाषित किया गया है। परिभाषित नहीं किया गया है: चर ज्ञात नहीं है। – voscausa

उत्तर

27

अजगर के रूप में, 0, None, [], {} और "" झूठी हैं। इसके अलावा कुछ भी, यह सच है।

"द यदि जिंजा में बयान के साथ तुलनीय है के बयानों अजगर सरलतम रूप में आप इसे परीक्षण करने के लिए यदि किसी वैरिएबल परिभाषित, खाली या गलत नहीं नहीं है उपयोग कर सकते हैं:।"

{% if post and post.wrk_1_title %} 

{% endif %} 

प्रलेखन: http://jinja.pocoo.org/docs/templates/#if

+0

पुनर्प्राप्त किया गया है तो यह पुष्टि करने के लिए कि मैं उपर्युक्त कथन को समझता हूं कि आपकी जिन्जा परिभाषित एक जांच है कि कोई चर है या नहीं ?? – Jesse

+0

हां, लेकिन 'पोस्ट' परिभाषित किया जाना चाहिए। यदि आपको नहीं पता कि 'पोस्ट' परिभाषित किया गया है, तो आपको इसका परीक्षण करना चाहिए:' पोस्ट और पोस्ट.wrk_1_title'। –

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