gpt4 book ai didi

python - Django : load a restricted set of fields of objects loaded using a foreign key

转载 作者:行者123 更新时间:2023-11-30 23:57:10 25 4
gpt4 key购买 nike

我有以下代码,使用 Django ORM

    routes =Routes.objects.filter(scheduleid=schedule.id).only('externalid')
t_list = [(route.externalid, route.vehicle.name) for route in routes])

而且速度非常慢,因为车辆对象很大(数十个字段,我无法更改它,它来自遗留数据库)。大量时间用于创建 Vehicle 对象,而我只需要该对象的名称字段。

有没有更有效的方法来获取 t_list ?我正在寻找类似 only() 的东西来通过外键访问对象。

编辑:解决方案如下:

routes=Routes.objects.filter(scheduleid=schedule.id).select_related("vehicle")
routes= routes.only('externalid','vehicle__name')

是否存在类似的东西?

最佳答案

我认为你应该能够做到这一点。 警告:未测试 使用本地模型进行测试。生成的查询看起来不错。

routes = Routes.objects.select_related('vehicle').filter(**conditions).only(
'externalid', 'vehicle__name')

要实现此功能,应该在 Routes 模型中声明一个 vehicle 外键字段。这是因为 select_lated() 仅遵循前向关系。

关于python - Django : load a restricted set of fields of objects loaded using a foreign key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com