我在比较Django模板中的两个日期时遇到了问题。
我的模型中有一个日期字段:
date_created = models.DateTimeField(auto_now=True)
我想比较date_created到今天的日期。所以这就是我在django模板中所做的事情:
{% if x.for_meeting.date_created < today%} # (x is the instance of MeetingRecord class where for_meeting field is Foreign key to Meeting table Where date_created)
现在我正在计算今天的视图:
today = datetime.now().strftime("%B %d, %Y,%I:%M %P")
不幸的是我无法比较日期。
请告诉我,我在这里做错了什么。
答案 0 :(得分:7)
today = datetime.now()
{% if x.for_meeting.date_created.date < today.date and x.for_meeting.date_created.time < today.time %}
答案 1 :(得分:0)
您不必(在视图中)创建Today变量,只需使用现有的{%now%}模板标签即可。
并且,在Django模板中比较DateTimeField对象时,请确保在相同的时区中进行比较。您可能需要对此进行明确说明,以使其更清晰并与时区更改兼容:
{% load tz %}
{% if date_created|utc < now|utc %}
如果dead_deadline为None或=>当前日期时间,则此结果为False。
默认情况下(对我而言),date_created是在数据库时间(UTC)中,现在是在settings.py中设置的本地时间。
还要确保您比较的值具有有意义的值。
PS。如果尝试使用localtime过滤器将日期时间对象转换为“自Unix纪元(1970年1月1日00:00:00 UTC)以来的秒数”,即日期:“ U”,则输出将为None。
答案 2 :(得分:0)
{% if date_created|date:"YmdHis" < now|date:"YmdHis" %}
{% endif %}