假设我有一个这样的模型:
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点之后发生的任何事件都会出现在下一天的列表中。
我要问的是如何以当前当前时区内返回的事件进行查询。
答案 0 :(得分:0)
好的,所以我已经解决了我的问题。我所做的是从提供的kwargs创建两个日期时间。一个是一天的开始,一个是结束。然后我让两个日期时间对象都知道并将当前的tz附加到它们。然后我用.filter(start_time __range =(starttime,endtime)