0
是否有可能執行QuerySet過濾器,以返回指定的循環時間跨度的對象?在循環時間範圍內查找帶有時間戳的對象
例如,給定一個開始和結束日期相隔了幾天,我想能夠找到:
- 獲取與下午2時至晚上七時戳的所有對象的起點和終點之間的每一天
- 獲取時間戳爲1am到8am之間的所有對象,包括星期六或星期天的每一天。
是否有可能執行QuerySet過濾器,以返回指定的循環時間跨度的對象?在循環時間範圍內查找帶有時間戳的對象
例如,給定一個開始和結束日期相隔了幾天,我想能夠找到:
未測試
對於第一種情況,假設爲MyModel和您的時間戳被稱爲日期,你可以這樣做:
import datetime
start_date = datetime.date(2012,7,1)
end_date = datetime.date(2012,7,16)
start_time = datetime.time(14,0)
end_time = datetime.time(19,0)
date_range = end_date - start_date
range_list = None
for days in xrange(date_range.days):
d = start_date + datetime.timedelta(days)
if range_list is None:
range_list = Q(date__range = (datetime.datetime.combine(d, start_time), datetime.datetime.combine(d, end_time)))
else:
range_list = range_list|Q(date__range = (datetime.datetime.combine(d, start_time), datetime.datetime.combine(d, end_time)))
MyModel.objects.filter(range_list)