我的案例:在我的 Django 应用程序的一个地方,出于优化目的,我决定使用纯 SQL - 我需要一个复杂的连接,而 Django ORM 无法完成这项工作。但是使用纯 SQL 引起了另一个问题——这个函数最好应该返回一个 QuerySet 对象,这变得不可能了。
所以我想知道 - 有没有手动构建查询集的方法?
我的案例:在我的 Django 应用程序的一个地方,出于优化目的,我决定使用纯 SQL - 我需要一个复杂的连接,而 Django ORM 无法完成这项工作。但是使用纯 SQL 引起了另一个问题——这个函数最好应该返回一个 QuerySet 对象,这变得不可能了。
所以我想知道 - 有没有手动构建查询集的方法?
有两种方法可以立即使用。
QuerySet.extra
允许您指定其他 SQL。Manager.raw
允许您编写将被映射到模型对象的原始 sql 查询。