А Вы знали, что SQL-запросы в джанго можно смотреть так?
Версия 1.1 и ниже:
# В django 1.1 и ниже:
>>> from foo.models import Bar
>>> Bar.objects.get(pk=1)
<Bar: Bar object>
>>> from django.db import connection
>>> connection.queries
[{'time': '0.071', 'sql': u'SELECT "foo_bar"."id", "foo_bar"."name", "foo_bar"."age", "foo_bar"."created" FROM "foo_bar" WHERE "foo_bar"."id" = 1 '}]
# А в 1.2 будет так:
>>> from foo.models import Bar
>>> str(Bar.objects.filter(name='Mike').query)
'SELECT "foo_bar"."id", "foo_bar"."name", "foo_bar"."age", "foo_bar"."created" FROM "foo_bar" WHERE "foo_bar"."name" = Mike '
* Пример с DjangoAdvent, если ещё не читали – прочтите!
3 комментария:
Я что-то не понял твоей логики, для 1.1 ты показываешь вызванный сиквел, а для 1.2 - тот, который будет вызван для queryset'а (и доступный в 1.1)
Конструкция вида:
print str(People.objects.filter(username='larin').query)
замечательно работает и в версии Django 1.1.1
Второго варианта не знал, спасибо!
Отправить комментарий