2016-09-15 68 views
0

我在模板中有兩個日期,我需要在if語句中進行比較。比較模板中的日期Django

日期1是從一個數據元素的創建領域{{endjob.created |日期:「YMD」}}中顯示爲2016年9月12日

日期2如果從數組{{pay_period.periods .0.0}}顯示爲2016-09-04

因此,我試圖要求僅在Date1> = Date2時顯示信息,但我沒有收到任何數據。

你能幫我如何交鋒模板日期在Django

這是我的代碼:

<tbody>  
{% for endjob in endjob %} 
     {% if endjob.created|date:"Y-m-d" >= pay_period.periods.0.0 %} 
      <tr> 
      <td><a href="{{ endjob.get_absolute_url }}" title="Goto Form">{{ endjob.event.name }}</a><br /></td> 
      <td>{{ endjob.event.job_no}} <br /></td> 
      <td>{{ endjob.event.job_type}} <br /></td> 
      <td>{{ endjob.code }} <br /></td> 
      <td>{{ endjob.crewid }}<br /></td> 
      <td>{{ endjob.workers }}<br /></td> 
      <td>{{ endjob.created|user_tz:user|date:"M j, Y" }}<br /></td> 
      </tr> 
     {% endif %} 
{% endfor %} 

回答

0

你可能會比較兩個不同的數據類型這就是爲什麼你沒有得到什麼。通過做endjob.created|date:"Y-m-d",您將endjob.created轉換爲一個字符串。是的,{{ pay_period.periods.0.0 }}顯示爲字符串'2016-09-04'。這就是{{ }}的事情。但是在表達式endjob.created|date:"Y-m-d" >= pay_period.periods.0.0中,您正在比較字符串VS原始數據類型pay_period.periods.0.0

爲了解決這個問題,只需確保數據類型匹配。你可能會逃脫endjob.created|date:"Y-m-d" >= pay_period.periods.0.0|date:"Y-m-d",但我不推薦它。除非有一個非常好的理由,否則你必須這樣做,我建議在模板級別以外的地方進行比較,然後傳遞布爾值或調用布爾屬性,而不是像so