Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django模板中的循环日期时间范围_Python_Django_Django Models_Django Templates_Django Views - Fatal编程技术网

Python django模板中的循环日期时间范围

Python django模板中的循环日期时间范围,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我有一个django模型的旅程,我有一个开始日期和结束日期,就像这样 class Journey(models.Model): start_date = models.DateField(verbose_name=_('Start date')) end_end = models.DateField(verbose_name=_('End date')) 还有另一个模型,它有这个模型的外键 一周中的第二天=((“MO”,“星期一”), (‘屠’、‘星期二’), (‘我们’、‘星

我有一个django模型的旅程,我有一个开始日期和结束日期,就像这样

class Journey(models.Model):
    start_date = models.DateField(verbose_name=_('Start date'))
    end_end = models.DateField(verbose_name=_('End date'))
还有另一个模型,它有这个模型的外键 一周中的第二天=((“MO”,“星期一”), (‘屠’、‘星期二’), (‘我们’、‘星期三’), (‘TH’、‘星期四’), (‘FR’、‘Friday’), (‘SA’、‘星期六’), (‘SU’、‘Sunday’),)

我想做的是,我想迭代从开始日期到结束日期的所有日子。如果日期属于计划模型中的某一天,那么我想在字典中更新该日期以及模型的其他字段,以便在模板上迭代该日期。为了这个,我试过这个

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
导入日期时间
从时间导入strftime
def获取计划天数(自我):
天=计划.对象.过滤器(旅程=自我).值('天')
天数列表=[]
对于以天为单位的天:
天列表。附加(天['day'])
delta=datetime.timedelta(天数=1)
附表_dict={}

虽然重复计划是一个混乱的问题,所以我建议您不要试图重新发明重复计划的轮子,而使用RRULE:

若要使用此选项,旅程将不包括日期。计划模型将有完整的开始和结束日期时间,然后是一个RRULE,描述它们如何重复到结束日期

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