Невозможно добавить в список

    if sample_collected == 'true':
            b_id = list(Booking.objects.filter(center__isnull=False,org_type='homedx').values_list('id', flat=True))
            for booki_id in b_id:
                print("Booking ID", booki_id)
                if booki_id in list(ReceivedPackageTubes.objects.values_list('booking_id', flat=True)):

                    packages = list(Booking.objects.filter(id=booki_id).values_list('packages__name', flat=True))
                    print("Packages", packages)
                    count_tube = []
                    for i in packages:
                        pt = package_models.PackageTubes.objects.filter(package__name=i).values_list('tubequantity__tube__name', flat=True).count()
                        count_tube.append(pt)

                    total_tubes = sum(count_tube)
                    print("Total Tubes", total_tubes)

                    collected = list(ReceivedPackageTubes.objects.filter(booking_id=booki_id).values_list('booking_id', flat=True))
                    print("Collected", collected)
                    collected_ids = []
                    
                    if len(collected) == total_tubes:
                        collected_ids.append(booki_id)
                    print("Collected ID", collected_ids)

В последней строке, если len(collected) == total_tubes. Я пытаюсь добавить **collected_id**. в collected_ids = []. Каждый раз добавляется один. Я знаю, что нужно использовать цикл for, но у меня не получается. Кто-нибудь может помочь. Я изучаю Python и Django. Спасибо!!!

Вы используете цикл for для перебора booki_id элементов в b_id и добавления их в список collected_ids. Однако каждый раз, когда вы обрабатываете следующий booki_id, вы сбрасываете collected_ids в пустой список. Попробуйте переместить строку:
collected_ids = []
за пределы цикла for, чтобы инициализировать список только один раз и избежать его перезаписи.

Вернуться на верх