В django 1.2.1 как я могу получить что-то вроде старого .as_sql? - программирование

В django 1.2.1 как я могу получить что-то вроде старого .as_sql?

В прошлых версиях 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 %}

который показывает мне полную версию запроса (включая выбранные поля)

Мой вопрос: как я могу получить эту полную версию внутри оболочки?

4b9b3361

Ответ 1

qs=Model.objects.all()
qs.query.as_sql() 

Должно выполняться задание как показано здесь

EDIT:

Я просто попробую и получаю ту же ошибку.

qs=Model.objects.all()
print qs.query

это должно дать вам то, что вы хотите (: