2014-12-07 41 views
0

我有一个django的模型之旅,其中i有一个起始日期日期和结束日期这样遍历日期时间范围在Django模板

class Journey(models.Model): 
    start_date = models.DateField(verbose_name=_('Start date')) 
    end_end = models.DateField(verbose_name=_('End date')) 

和具有另一种模型,该模型具有FOREIGNKEY这个模型 DAY_OF_WEEK =((“MO” ,星期一'), ('T','星期二'), ('WE','星期三'), ('TH','星期四'), ('FR','Friday'), ('SA','Saturday'), ('SU','Sunday'),)

class Schedule(models.Model): 

    day = models.CharField(max_length=2, choices=DAY_OF_WEEK) 
    start_time = models.TimeField(null=True, blank=True,) 
    end_time = models.TimeField(null=True, blank=True,) 
    journey = models.ForeignKey(Journey) 

我想要做的是,我想遍历从start_date到end_date的所有日子。如果日期属于Schedule模型中的日期,那么我想在字典中更新该日期以及模型的其他字段,以便我可以在模板上迭代它。为了这个,我想这

import datetime 
from time import strftime 
def get_schedule_days(self): 
    days=Schedule.objects.filter(journey=self).values('day') 

    days_list=[] 
    for day in days: 
     days_list.append(day['day']) 
    delta = datetime.timedelta(days=1) 
    schedule_dict={} 
    while d <= end_date: 
     if d.strftime("%A").upper()[:2] in days_list: 

      schedule_dict.update('date',d.strftime("%Y-%m-%d")) 
     print d.strftime("%Y-%m-%d") 
     d += delta 

是它迪正确的做法是或者有更好的方式来遍历一个日期范围,并找到所有的日子,当进度计划。

回答