在过去版本的 django 中,您可以构造一个查询集,然后对其执行 .as_sql() 以找出最终查询。
在 Django 1.2.1 中,有一个函数 ._as_sql() 返回类似的内容,但不一样。
在过去的版本中:
qs=Model.objects.all()
qs.as_sql() ====>
SELECT `model_table.id`, `model_table.name`, `model_table.size` from model_table
这向我展示了很多信息。
但如果我在 Django 1.2.1 中尝试
from django.db import connections
con=connections['default']
qs=Model.objects.all()
qs._as_sql(con) ====>
SELECT U0.`id` from model_table U0
这并没有告诉我实际选择了哪些字段。我知道这些信息在某处可用,因为在模板中,我仍然可以这样做:
{% for q in sql_queries %}
{{q.time}} - {{q.sql}}
{% endfor %}
它显示了查询的完整版本(包括所选字段)
我的问题是,如何在 shell 中获得这个完整版本?
qs=Model.objects.all()
qs.query.as_sql()
应该做这份工作如这里所示 http://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/#automatic-spatial-transformations
EDIT:
我只是尝试一下并得到同样的错误。
qs=Model.objects.all()
print qs.query
这一定会给你你想要的(:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)