重要的不是连接,而是列名。例如,您可以执行以下操作:
SELECT table.id, other_table.name AS name from table join other_table using (id)
将其传递到您的table
模型中。然后,Django会将other_table
中的名称视为来自table
的名称,并提供正常的table
实例。虽然我无法想象您为什么要这样做...
重要的是要记住,Django使用非常简单的映射从您的SQL到其模型结构。如果您想要规避它,但最终可能会得到一些难以维护的代码。
annotate()
添加到模型(从中执行查询)中的字段一样?请注意,我在这里是因为我的查询跨越了多对多关系,并且我的搜索条件是针对相关表的,我正在寻找一种只接收与该条件匹配的组合记录的方法。我来这里的原因是因为我们为每个由6或7个表组成的多个组合视图构建了高级搜索界面,而在 M:M 表上进行的搜索会产生不符合搜索条件的记录。 - hepcat72