是否可以打印由Django中的queryset.exists()语句生成的SQL?获取由Django中的.exists()查询生成的SQL语句
2
A
回答
0
通常情况下,您可以打印SQL QuerySet
s生成但是因为exists()
不返回QuerySet
但返回一个简单的布尔值,这是更困难的。
也许最简单的方法不是打印SQL查询只是exists()
,而是查看视图中的所有查询。您可以按照其他SO问题如何做到这一点(example),或者您可以使用django-debug-toolbar。
如果你也是印刷有趣的查询QuerySet
产生,你可以打印使用完整的SQL查询:
print(Model.objects.filter(...).exists().query)
,将打印完整的查询。
如果您的意图是能够复制粘贴查询并直接执行,它可能并不总是有效。例如,打印查询并不总是产生正确的语法,如使用日期。然而,在Django Query
对象(这是QuerySet.query
是实例)中有另一个有用的方法 - sql_with_params()
。这将返回参数化查询与参数本身。例如:
sql, params = Model.objects.filter(...).exists().query.sql_with_params()
Model.objects.raw(sql, params=params)
+3
'Model.objects.filter()。exists()'将返回一个布尔值。并且在布尔值上访问.query()会给出'AttributeError'。或不? – 2017-02-01 18:05:55
相关问题
- 1. 由LINQ TO SQL语句生成的SQL查询
- 2. 获取从CDbCriteria生成的SQL语句
- 3. Raills:获取由delete_all生成的SQL语句
- 4. 修改由JDBC生成的sql语句
- 5. 由JPA生成的错误SQL语句
- 6. SQL语句,获取查询RSQLite
- 7. 查看生成的SQL语句的LLBLGen
- 8. 是否有可能获得由Class :: DBI生成的SQL语句?
- 9. Hibernate:由SQL查询生成的值
- 10. EntityFramework任何生成两个EXISTS sql语句
- 11. SQL UPDATE语句与WHERE EXISTS
- 12. SQL查询组由case语句
- 13. 从pgPromise查询结果中获取执行的SQL语句
- 14. 如何使用SQL Select语句和IF EXISTS子查询?
- 15. SQL NOT EXISTS查询
- 16. SQL查询,NOT EXISTS
- 17. SQL查询IF EXISTS
- 18. Yii 1,获取由CDbCriteria生成的SQL
- 19. 从任意SQL查询中生成CREATE TABLE语句
- 20. sql-server,SQL查询中的IF语句
- 21. SQL语句中的SQL变量查询?
- 22. CASE语句的SQL查询
- 23. Rails的查询SQL语句
- 24. SQL查询语句
- 25. SQL查询语句
- 26. SQL语句查询
- 27. 从编译的linq查询中获取生成的sql
- 28. 查询生成器和条件语句
- 29. SQL查询语句由错误造成因组(列无效)
- 30. MySQL查询和EXISTS子句
尝试:http://stackoverflow.com/questions/1074212/show-the-sql-django-is-running – cdvv7788 2015-02-06 23:19:26
或者更好的是,使用此:https://github.com/ django-debug-toolbar/django-debug-toolbar 一旦安装,它将显示请求中使用的所有查询 – cdvv7788 2015-02-06 23:21:56
@ cdvv7788 - 谢谢 – freyley 2015-02-07 00:02:43