【问题标题】:Django - Comparing datetime values in templateDjango - 比较模板中的日期时间值
【发布时间】:2021-12-31 20:24:00
【问题描述】:

如果日期组件相等,我需要为 Django HTML 模板中的事件显示不同的日期时间值,例如,如果开始时间和结束时间发生在同一日期,我需要以这种格式显示“2021 年 12 月 15 日星期三18:00 到 21:00',并且开始和结束时间发生在不同的日期,我需要以这种格式显示开始和结束日期的完整日期时间值'2021 年 12 月 15 日星期三 09:00 到 2021 年 12 月 16 日星期四18:00'

我玩过以下代码,但我总是会有所不同,因为我认为它不是在比较格式化的日期,而是比较完整的日期时间值。

<li>
    {% if "{{ date.start|date:'D d M Y' }}" == "{{ date.end|date:'D d M Y' }}" %}
        {{ date.start|date:"D d M Y" }} {{ date.start|time:"H:i" }} to {{ date.end|time:"H:i" }}
    {% else %}
        {{ date.start|date:"D d M Y" }} {{ date.start|time:"H:i" }} to {{ date.end|date:"D d M Y" }} {{ date.end|time:"H:i" }}
    {% endif %}
</li>

我可以在数据库中放置一个布尔标志并在视图中执行此操作,但如果可能,我更愿意在模板中执行此操作;任何想法表示赞赏!

干杯,

西蒙

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    您不应该在 if 标记中的变量周围使用嵌套大括号,无论它们是否有过滤器

    {% if date.start|date:'D d M Y' == date.end|date:'D d M Y' %}
    

    【讨论】:

    • 太棒了,我看不到那棵树上的森林!感谢您的帮助!
    猜你喜欢
    • 2013-03-18
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2011-04-17
    • 2012-04-20
    相关资源
    最近更新 更多