В 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
это должно дать вам то, что вы хотите (: