Как просмотреть соответствующий SQL-запрос из набора запросов Django ORM?

Есть ли способ напечатать запрос, который генерирует Django ORM?

Скажите, что я выполняю следующее утверждение: Model.objects.filter(name='test')

Как мне получить сгенерированный запрос SQL ?

147
задан Sukumar Rdjf 5 July 2019 в 23:32
поделиться

3 ответа

Каждый объект QuerySet имеет атрибут query , который можно регистрировать или выводить на стандартный вывод для целей отладки.

qs = Model.objects.filter(name='test')
print qs.query

Редактировать

Я также использовал настраиваемые теги шаблонов (как описано в этом фрагменте ) для вставки запросов в рамках одного запроса в виде комментариев HTML.

169
ответ дан 23 November 2019 в 21:42
поделиться

Пока DEBUG включен:

from django.db import connection
print(connection.queries)

Для индивидуального запроса вы можете выполнить:

print(Model.objects.filter(name='test').query)
70
ответ дан 23 November 2019 в 21:42
поделиться

Может быть, вам стоит взглянуть на django-debug -toolbar , оно будет регистрировать для вас все запросы, отображать для них профилирующую информацию и многое другое.

30
ответ дан 23 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: