比较模板Django中的日期

时间:2016-09-15 01:33:55

标签: python django

我在模板中有两个日期需要在if语句中进行比较。

Date1来自数据元素的创建字段{{endjob.created | date:" Y-m-d"显示为2016-09-12

Date2,如果来自显示为2016-09-04的数组{{pay_period.periods.0.0}}

因此,我试图仅在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 %}

1 个答案:

答案 0 :(得分: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