0

我正在编写一个 Django 应用程序,其中我有一个带有event_time字段和event_date字段的事件模型。我想检查一个事件是否已经开始和正在进行。

如果活动安排的日期等于今天的日期,而活动安排的时间小于等于现在的时间,则表示活动已经开始;否则事件尚未开始。

这是我的代码:

context['is_ongoing'] = context['event'][0].event_date == datetime.now().date() and timezone.now().time() >= context['event'][0].event_time

我得到True即使event_time大于现在的时间,而我想要False在那种情况下。

4

1 回答 1

0

从查询集中通过数组获取位置甚至不检查它是否有值是一种难闻的气味,建议不要这样做,如果你想要第一个元素,请尝试使用函数 .first()

import datetime

event = context['event'].first()
if event:
    context['is_ongoing'] True if event.event_date >= datetime.datetime.now().date() and event.event_time >= datetime.datetime.now() else False
于 2018-07-04T15:17:50.943 回答