【发布时间】:2018-11-08 15:37:11
【问题描述】:
我创建了一个函数,允许计算status 的数量并将其分配给一个变量。
def get_types_count_display(self):
dispatches = self.route_dispatches.values_list('dispatch_id', flat=True)
dispatches = Dispatch.objects.filter(id__in=dispatches)
d = { "dispatches_types": list(dispatches.values('status_id')) }
pendents = len([1 for e in d["dispatches_types"] if e["status_id"]==1])
delivered = len([1 for e in d["dispatches_types"] if e["status_id"]==2])
partial = len([1 for e in d["dispatches_types"] if e["status_id"]==3])
undelivered = len([1 for e in d["dispatches_types"] if e["status_id"]==4])
return dict(pendents=pendents, delivered=delivered, partial=partial, undelivered=undelivered)
d 是我的变量,用于存储它包含的字典
{'dispatches_types': [{'status_id': 2}, {'status_id': 1}, {'status_id': 1}, {'status_id': 1}, {'status_id': 2}]}
或
{'dispatches_types': []}
这是动态的
我遇到的问题是,当您通过 for 再次调用查询集时,查询变得更重。
如何优化这个功能?
【问题讨论】:
标签: python django python-3.x query-optimization django-queryset