2014-12-07 42 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 

是它迪正確的做法是或者有更好的方式來遍歷一個日期範圍,並找到所有的日子,當進度計劃。

回答