我有以下代码,使用Django ORM
routes =Routes.objects.filter(scheduleid=schedule.id).only('externalid')
t_list = [(route.externalid, route.vehicle.name) for route in routes])
而且速度非常慢,因为车辆对象很大(几十个字段,我无法更改,它来自一个遗留数据库)。创建Vehicle对象花费了大量的时间,而我只需要这个对象的name字段。在
有没有更有效的方法来获取t_list?我正在寻找类似only()的东西来通过外键访问对象。在
编辑: 解决方案如下:
^{pr2}$有没有类似的东西?在
我想你应该能做到。
警告:未使用本地模型进行测试。生成的查询看起来不错。在为了实现这一点,应该在
Routes
模型中声明一个vehicle
外键字段。这是因为select_related()
只遵循向前关系。在您可以尝试以下操作:
相关问题 更多 >
编程相关推荐