Существует два списка:
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