首页 > 解决方案 > Django ORM 可以加入 pk 以外的其他内容吗?

问题描述

从:StartTable.objects.annotate(name=F('object_type_2__destination_table__name'))

Django 会自动编写一个包含此内容的查询:

LEFT OUTER JOIN "object" T4 ON ("start_table"."object_type_2_id" = T4."id") 
LEFT OUTER JOIN "destination_table" ON (T4."id" = "destination_table"."object_id") 

有没有办法让 Django 通过编写它来提高效率?:

JOIN destination_table ON destination_table.object_id = start_table.object_type_2_id

要记住的一些上下文;有start_table几个外键字段都引用同一个object表,但出于不同的原因,这就是我给出object_type_2_id列名的原因。

标签: pythonsqldjangodjango-modelspsql

解决方案


推荐阅读