Django objects.create производит больше выходных данных, чем должно - PullRequest
0 голосов
/ 26 июня 2019

Существует два списка:

master_values:

[{<Truckdb: Truckdb object (141)>: [<ItemBatch: Iphone>, <ItemBatch: Iphone>, <ItemBatch: Iphone>, <ItemBatch: Iphone>]}, {<Truckdb: Truckdb object (18)>: [<ItemBatch: Iphone>]}]

truck_objects:

[<truck_name: 17 Feet 6000>, <truck_name: Tempo 407 1500>]

Когда я запускаю следующий код, он создает больше диспетчерского плана, чем должен:

for i in range(len(truck_objects)):
    for j in range(len(master_values)):
        if i == j:
            for q, w in master_values[j].items():
                for aa in range(len(w)):

                    print("len(w)  ",len(w))
                    DispatchPlan.objects.create(owner=request.user,
                            truck_type=container_object,
                            truck_name=truck_objects[i],
                            items=w[aa])

В этом он создал 5 планов отправки, когда он должен был создать только два

Models.py

class DispatchPlan(models.Model):

    owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name='dispatch_quizzes')
    comments = models.TextField(max_length=256)
    truck_type = models.ForeignKey(truck_type, on_delete=models.CASCADE, related_name='dispatch_type')
    truck_name = models.ForeignKey(truck_name, on_delete=models.CASCADE, related_name='dispatch_name')

    items = models.ForeignKey(ItemBatch, on_delete=models.CASCADE, related_name='items')

class ItemBatch(models.Model):
    ttypes = (('Open', 'Open'), ('Container', 'Container'), ('Trailer', 'Trailer'), ('All', 'All'))
    uploaded_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name='uploaded_by')
    name = models.CharField(max_length=100)
    pid = models.IntegerField(blank=True)
    quantity = models.IntegerField(blank=True)
    length = models.FloatField(blank=True)
    width = models.FloatField(blank=True)
    height = models.FloatField(blank=True)
    volume = models.FloatField(blank=True)
    weight = models.FloatField(blank=True)
    truck_type = models.CharField(max_length=255, default=0, choices=ttypes)
    origin = models.CharField(max_length=100, blank=True)
    date = models.DateTimeField(blank=True, null=True, default=now)
    destination = models.CharField(max_length=100, blank=True)
    time = models.DateTimeField(max_length=100, blank=True, default=now)
    rtd = models.BooleanField(default=False)  # ready to dispatch checkbox
    is_dispatched = models.BooleanField(default=False)  # item is dispatched or not
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...