Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django ORM轻松执行原始SQL的工具_Python_Django_Orm - Fatal编程技术网

Python 使用Django ORM轻松执行原始SQL的工具

Python 使用Django ORM轻松执行原始SQL的工具,python,django,orm,Python,Django,Orm,我经常需要在django中执行自定义sql查询,每次手动将查询结果转换为对象都有点痛苦。我想知道懒汉们是如何处理这件事的。也许有人编写了某种库来帮助处理Django中的自定义SQL?不太清楚您在寻找什么,但您可以始终在模型上添加一个方法来执行自定义SQL: 对于更通用的方法,请创建一个定义类似于带有“sql”参数的函数的函数。因为问题是“手动将查询结果转换为对象”,最简单的解决方案通常是查看自定义sql是否适合ORM.extra()调用,而不是纯sql查询。通常可以,然后让ORM像往常一样完成所

我经常需要在django中执行自定义sql查询,每次手动将查询结果转换为对象都有点痛苦。我想知道懒汉们是如何处理这件事的。也许有人编写了某种库来帮助处理Django中的自定义SQL?

不太清楚您在寻找什么,但您可以始终在模型上添加一个方法来执行自定义SQL:


对于更通用的方法,请创建一个定义类似于带有“sql”参数的函数的函数。

因为问题是“手动将查询结果转换为对象”,最简单的解决方案通常是查看自定义sql是否适合ORM.extra()调用,而不是纯sql查询。通常可以,然后让ORM像往常一样完成所有构建对象的工作。

最新的开发版本(future 1.2)有.raw()方法来帮助您:

Person.objects.raw('SELECT * FROM myapp_person')

有关更多信息,请参见。

使用django.db连接时如何指定数据库??
Person.objects.raw('SELECT * FROM myapp_person')