Сохранение вывода функции в другой функции в Django - PullRequest
0 голосов
/ 12 июня 2019

У меня есть функция Packer, вывод которой я пытаюсь сохранить в DispatchPlan следующим образом:

for i in range(len(truck_objects)):

    DispatchPlan.objects.create(owner=request.user, comments="Autogenerated", truck_type=open_object,
                                truck_name=truck_objects[i], origin=k.split("-")[0],
                                destination=k.split("-")[1], total_trucks=1, material_type='Non-Fragile',
                                scheduled_date=item_date, offered_price=0, weight=item_weight_sum,
                                status='Hold', etd=open_etd_temp, route_link=route_map, eta=item_date,
                                route_distance=temp_distance, route_tat=temp, pk=new_quiz.id)

, где truck_objects это:

[<truck_name: Tempo 407 2500>, <truck_name: Tempo 407 2000>]

но теперь есть другой выводиз Упаковщик т.е. master_values, который содержит предметы, упакованные в каждый грузовик.

master_values ​​

[{<Truckdb: Truckdb object (3)>: [<ItemBatch: Chains & Chain Link Fence Fittings>, <ItemBatch: Chains & Chain Link Fence Fittings>]}, {<Truckdb: Truckdb object (2)>: [<ItemBatch:
Chains & Chain Link Fence Fittings>, <ItemBatch: Chains & Chain Link Fence Fittings>]}]

Теперь, как мне сохранить это master_values ​​в моем DispatchPlan?

Один из способов, который я мог придумать, - это вложенные циклы, так что я сохраняю весь список на грузовике, создав ArrayField в моей модели DispatchPlan.Есть ли другой способ сохранить эти данные?

Models.py

class DispatchPlan(models.Model):
    bid_status_choices = (
        ('Hold', 'Hold'), ('Active', 'Active'), ('Assigned', 'Assigned'), ('Dispatched', 'Dispatched'),
        ('Delayed', 'Delayed'), ('Delivered', 'Delivered'))
    mtypes = (('Fragile', 'Fragile'), ('Non-Fragile', 'Non-Fragile'))

    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')
    origin = models.CharField(max_length=255, default=0)
    destination = models.CharField(max_length=255, default=0)
    total_trucks = models.IntegerField(default=0)
    material_type = models.CharField(max_length=255, default=0, choices=mtypes)
    scheduled_date = models.DateTimeField(max_length=255, default=0)
    offered_price = models.IntegerField(default=0)
    weight = models.IntegerField(default=0)
    status = models.CharField(max_length=255, default='Active', choices=bid_status_choices)
    created_on = models.DateTimeField(auto_now_add=True)
    route_distance = models.IntegerField(default=0)
    route_tat = models.CharField(max_length=255, default=0)
    etd = models.DateTimeField(default=timezone.now)
    eta = models.DateTimeField(default=timezone.now)
    route_link = models.CharField(max_length=255, default=0)
...