我正在用python和Django构建一个应用程序。我有几个模型,但我需要从一个模型获取数据到另一个模型(可以用SOSS(销售订单号)建立关系。我确实有逻辑做到这一点,但效率不如我想要的那么高。大约需要5-6分钟来处理数据。
我的模型1具有关系编号(po_number)并且与模型2相关(称为planning_number)它花费了大量时间,因为模型2具有大约93,000条数据线。
这是我的逻辑:
def import_withtimes(request):
print "importando With Times a ots report"
po_cache = list()
for item in Model1.objects.all():
if item.po_number in po_cache:
continue
withtimes = Model2.objects.filter(planning_order=item.po_number)
for wi in withtimes:
po_cache.append(wi.planning_order)
item.wms = wi.wms_order
item.status = wi.shipment_status
item.aging = wi.status_date
item.carrier = wi.service_level
item.add_date = wi.order_add_date
item.asn_validation = wi.asn_sent_time
item.docs_add_date = wi.docs_received_time
item.save()
我的问题是:有没有更有效的方法将数据从一个模型反映到另一个模型?
答案 0 :(得分:1)
您的model1
和model2
是否与models.ForeignKey
字段相关(关联po_number
和planning_order
)?然后,您可以使用QuerySet来获取相关对象。
您使用的是哪种后端数据存储?它是否在相关领域有索引?请查看在模型定义(https://docs.djangoproject.com/en/1.8/ref/models/fields/#db-index)的相关字段中设置db_index=True
选项。