Ответ 1
qs=Model.objects.all()
qs.query.as_sql()
Должно выполняться задание как показано здесь
EDIT:
Я просто попробую и получаю ту же ошибку.
qs=Model.objects.all()
print qs.query
это должно дать вам то, что вы хотите (:
В прошлых версиях 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 %}
который показывает мне полную версию запроса (включая выбранные поля)
Мой вопрос: как я могу получить эту полную версию внутри оболочки?
qs=Model.objects.all()
qs.query.as_sql()
Должно выполняться задание как показано здесь
EDIT:
Я просто попробую и получаю ту же ошибку.
qs=Model.objects.all()
print qs.query
это должно дать вам то, что вы хотите (: