2012-07-16 2 views
0

개체 양식을 반복적으로 반환하는 QuerySet 필터를 사용할 수 있습니까? 몇 일 간격 시작 및 종료 날짜를 주어진 예를 들어반복 시간 범위에서 타임 스탬프가있는 개체 찾기

, 내가 찾을 수 있도록하고 싶습니다 :

  • 는 시작과 끝 사이 매일 오후 2 오후 7 사이의 타임 스탬프가 모든 객체를 가져옵니다
  • 토요일 또는 일요일 인 매일 오전 1 시부 터 오전 8시 사이의 모든 개체를 가져옵니다.

답변

1

는 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) 
관련 문제