В 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 %}

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

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

1 ответ

Решение
qs=Model.objects.all()
qs.query.as_sql() 

Должен делать работу, как показано здесь

РЕДАКТИРОВАТЬ:

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

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

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

Другие вопросы по тегам