Python-скрипт на django - почему мой цикл не заканчивается? - PullRequest
0 голосов
/ 10 ноября 2011

Джанго / Питон новобранец. Имейте функцию, которая не заканчивается при вызове. Нет ошибок, он просто останавливается и возвращается в командную строку 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

1 Ответ

2 голосов
/ 10 ноября 2011

Я думаю, что вам может понадобиться .save () вашего объекта carpool после добавления в него ног - иначе количество ног может быть равно нулю, потому что не было другого попадания базы данных в объект carpool.Это могло бы объяснить ваш пропуск цикла.

Правильно ли я считаю, что число этапов перед циклом равно нулю?Распечатайте его, затем попробуйте .save () с помощью объекта carpool после добавления ножек ...

Просто догадка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...