django python脚本-为什么我的循环没有完成?

django python脚本-为什么我的循环没有完成?,python,django,Python,Django,Django/Python新手。具有调用时未完成的函数。没有错误,它只是停止并返回python命令提示符。它执行第一个while循环,但在到达下一个“print”命令之前停止,并将我带回提示符。执行的所有操作都是正确的。我肯定我错过了一些基本的东西。下面是函数: def create_carpool(family, start_date, end_date, name): carpool = Carpool() carpool.name = name carpool.sa

Django/Python新手。具有调用时未完成的函数。没有错误,它只是停止并返回python命令提示符。它执行第一个while循环,但在到达下一个“print”命令之前停止,并将我带回提示符。执行的所有操作都是正确的。我肯定我错过了一些基本的东西。下面是函数:

def create_carpool(family, start_date, end_date, name):
    carpool = Carpool()
    carpool.name = name
    carpool.save()
    current_date = start_date

    while current_date <= end_date:
        print 'Processing ' + current_date.strftime('%m/%d/%Y') + ' going to ' + end_date.strftime('%m/%d/%Y')
        if current_date.day not in (5,6):
            start_leg = Leg()
            start_leg.drive_date = current_date
            start_leg.start_time = START_TIME_AM
            start_leg.endpoint = ENDPOINT_AM
            start_leg.save()
            end_leg = Leg()
            end_leg.drive_date = current_date
            end_leg.start_time = START_TIME_PM
            end_leg.endpoint = ENDPOINT_PM
            end_leg.save()
            carpool.legs.add(start_leg)
            carpool.legs.add(end_leg)
        current_date += datetime.timedelta(days=1)

    print 'Adding driving preferences for all carpool legs.'
    num_legs = carpool.legs.all().count()
    leg_idx = 0
    for leg in carpool.legs.all():
        leg_idx += 1
        print 'Processing leg #' + str(leg_idx) + ' of ' + str(num_legs)
        for rider in Rider.objects.all():
            if choice(number_list) >= 4:
                leg.riders.add(rider)
        for driver in carpool.drivers.all():
            drive_preference = DrivingPreference()
            drive_preference.leg = leg
            drive_preference.driver = family.drivers
            drive_preference.preference = choice([1,2,3])
            drive_preference.save()
    return carpool
def创建拼车(家庭、开始日期、结束日期、姓名):
拼车=拼车()
carpool.name=名称
拼车
当前日期=开始日期
当前_日期=4时:
腿。骑手。添加(骑手)
对于拼车中的驾驶员。drivers.all():
驾驶偏好=驾驶偏好()
drive_preference.leg=腿
drive\u preference.driver=family.drivers
驱动器\首选项。首选项=选择([1,2,3])
驱动器\首选项。保存()
返程拼车

我认为您可能需要在向carpool对象添加支腿后保存(),否则支腿计数可能为零,因为carpool对象上不会再有另一个数据库命中。这可以解释你的循环跳过

我认为循环前腿数为零,对吗?打印它,然后在添加支腿后尝试.save()保存拼车对象


只是一种预感。

您是否调试了代码,以便在启动循环时查看每个集合中包含的内容?也许有些东西没有被添加,集合中没有更多的元素可以迭代?谢谢。carpool.save()让循环结束。现在我必须修复代码,使其正确完成并执行它应该执行的操作!谢谢你的帮助@mb52089:欢迎来到StackOverflow。如果这个答案解决了你的问题,我建议你点击复选框接受它。这将奖励Spacedman的正确答案,给你几点声誉积分,并鼓励人们回答你未来的问题。嗅嗅谢谢Fred。我只想在年底前达到10公里。。。大概大概