Django-原始SQL查询-连接中会发生什么

Django-原始SQL查询-连接中会发生什么,django,django-models,Django,Django Models,我在读我能读的书 但是,我想知道如果在原始SQL中使用连接会发生什么。Django如何知道使用什么模型 (还有其他问题需要注意吗?重要的不是连接,而是列名。例如,您可以执行以下操作: SELECT table.id, other_table.name AS name from table join other_table using (id) 并将其传递到您的表格模型中。Django然后会将其他_表中的名称视为表中的名称,并给出正常的表实例。我无法想象你为什么要这么做 需要记住的重要一点是,D

我在读我能读的书

但是,我想知道如果在原始SQL中使用连接会发生什么。Django如何知道使用什么模型


(还有其他问题需要注意吗?

重要的不是连接,而是列名。例如,您可以执行以下操作:

SELECT table.id, other_table.name AS name from table join other_table using (id)
并将其传递到您的
表格
模型中。Django然后会将
其他_表
中的名称视为
中的名称,并给出正常的
实例。我无法想象你为什么要这么做


需要记住的重要一点是,Django使用了从SQL到其模型结构的非常简单的映射。如果需要,您可以对其进行颠覆,但最终可能会得到一些难以维护的代码。

我链接到的页面上说,它使用表名查找要使用的模型。所以我想知道,如果我把两个不同模型的表连接起来,它怎么知道使用哪种模型呢?我不认为它是这么说的。将查询传递给ModelName.objects.raw(查询),这样就可以返回ModelName对象。它所说的是,您需要在原始SQL中使用的表名是create as appname\u modelname。