从 Django QuerySet 获取 SQL

新手上路,请多包涵

如何从 QuerySet 对象获取 Django 将在数据库上使用的 SQL?我正在尝试调试一些奇怪的行为,但我不确定哪些查询将进入数据库。

原文由 exupero 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 415
2 个回答

您打印查询集的 query 属性。

 >>> queryset = MyModel.objects.all()
>>> print(queryset.query)
SELECT "myapp_mymodel"."id", ... FROM "myapp_mymodel"

原文由 jpwatts 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Django 1.4.4 时 ,接受的答案 对我不起作用。返回的不是原始查询,而是对 Query 对象的引用: <django.db.models.sql.query.Query object at 0x10a4acd90>

以下返回查询:

 >>> queryset = MyModel.objects.all()
>>> queryset.query.__str__()

原文由 Hakan B. 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题