2016-09-15 72 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