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

标签 django django-models

我在读我可以 use raw SQL in Django and have Django actually build my models from the result s。

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

(还有其他我应该注意的问题吗?)

最佳答案

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

SELECT table.id, other_table.name AS name from table join other_table using (id)

并将其传递给您的 table模型。然后 Django 会处理来自 other_table 的名字。好像它们是来自 table 的名字并给您正常的 table实例。我无法想象为什么你会想要这样做......

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

关于Django - 原始 SQL 查询 - 联接中会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6252502/

相关文章:

python - 为什么 ListView 不显示模板中的数据?

django - 如何将 Django 模型字段的默认值设置为函数调用/可调用(例如,相对于模型对象创建时间的日期)

python - 如何在两个 M2M 值上使用 prefetch_lated?

django - Groovy 或 Django

python - 在 Django 的 subview 中获取 url 父参数

python - 在 Django 中,如何使用动态字段查找过滤 QuerySet?

python - Django 排除列表中*每个*项目的查询集 __in

模板中的 Django 文本格式

python - django:从 IntegrityError 中恢复的正确方法

django - 'fill' 这样的表格有可能吗?