检索datetime字段解析为另一个时区中的日期的所有对象

时间:2012-10-18 00:16:53

标签: django timezone models

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

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点之后发生的任何事件都会出现在下一天的列表中。

我要问的是如何以当前当前时区内返回的事件进行查询。

1 个答案:

答案 0 :(得分:0)

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