8

我在比较 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")

不幸的是,我无法比较日期。

请告诉我我在这里做错了什么。

4

3 回答 3

12
today =  datetime.now()

{% if x.for_meeting.date_created.date < today.date and x.for_meeting.date_created.time < today.time  %}
于 2013-03-28T06:47:53.293 回答
6

您不必创建 today 变量(在视图中),只需使用已经可用的 {% now %} 模板标签。

而且,在比较 Django 模板中的 DateTimeField 对象时,请确保在相同的时区中比较它们。为了清晰和与时区更改兼容,您可能希望明确说明:

{% load tz %}

{% if date_created|utc < now|utc %}

如果 dead_deadline 为 None 或 => 而不是当前日期时间,则计算结果为 False。

默认情况下(对我而言),date_created 采用数据库时间 (UTC),现在采用 settings.py 中设置的本地时间。

还要确保您比较的值具有有意义的值。

PS。如果您尝试使用本地时间过滤器将日期时间对象转换为“自 Unix 纪元以来的秒数(1970 年 1 月 1 日 00:00:00 UTC)”,即日期:“U”,则输出将为无。

于 2019-01-27T18:05:47.883 回答
4
{% if date_created|date:"YmdHis" < now|date:"YmdHis" %}

{% endif %}
于 2019-07-15T09:17:15.110 回答