0

假设我有一个这样的模型:

class Event(models.Model):
    title = CharField(max_length=100)
    start_time = DateTimeField()

现在,所有事件都以 UTC 格式存储在数据库中。现在,在视图方面,我有这样的课程:

class EventListDay(ListView):
    def get_queryset(self):
    year, month, day = int(self.kwargs['year']), int(self.kwargs['month']), int(self.kwargs['day'])
    target_day = datetime.datetime(year,month,day) #naive date type
    target_day = timezone.make_aware(target_day, timezone.get_current_timezone()) #aware date time
    return Event.confirmed_objects.get_events_for_day(target_day).order_by("start_time")

现在,当调用此视图时,我会得到一个查询集,其中包含当天发生的所有事件。唯一的问题是返回的事件是从那天开始的 UTC。因此,例如,我在“美国/芝加哥”时区,晚上 7 点之后发生的任何事件都会出现在接下来的几天列表中。

我要问的是如何进行查询,以使返回的事件发生在当前时区的那一天。

4

1 回答 1

0

好的,所以我已经解决了我的问题。我所做的是从提供的 kwargs 创建两个日期时间。一个是一天的开始,一个是结束。然后我让两个日期时间对象都知道并将当前的 tz 附加到它们。然后我使用了 .filter( start_time __range=(starttime, endtime)

于 2012-10-18T01:25:59.433 回答