【发布时间】:2015-02-05 12:02:45
【问题描述】:
我有一个 django 模型之旅,我有一个像这样的 start_date 和 end_date
class Journey(models.Model):
start_date = models.DateField(verbose_name=_('Start date'))
end_end = models.DateField(verbose_name=_('End date'))
并拥有另一个模型,该模型具有该模型的外键 DAY_OF_WEEK = (('MO', '星期一'), ('TU','星期二'), ('我们','星期三'), ('TH', '星期四'), ('FR', '星期五'), ('SA','星期六'), ('SU', '星期天'),)
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
di is 是正确的方法,还是有更好的方法来迭代一系列日期并找到计划安排的所有日期。
【问题讨论】:
标签: python django django-models django-templates django-views