在我的Django应用程序中,我有一些模型,包括但不限于:车辆,车辆制造和经销商。我创建了一个列表推导,用于创建具有车辆品牌的JSON对象,经销商库存中的品牌出现次数,例如在他们的库存中有6个丰田,以及我在Postgres DB中的ID。问题是我必须在数据库中的所有车辆上使用.count,并且属于该经销商,这会对数据库造成巨大损失。有没有办法加快速度,或优化它。我一直在网上寻找潜在的解决方案,但我现在正在枯竭。
查看功能
try:
dealer = Dealer.objects.get(id=1)
except Exception as e:
logging.error(e)
makes_map = [{
'name': make.name,
'count': Vehicle.objects.filter(vehicle_make=make, dealer=dealer).count(),
'id': make.id
} for make in VehicleMake.objects.filter(
name__in=Vehicle.objects.filter(dealer=dealer).values_list('vehicle_make__name', flat=True))
]