Самый простой способ - использовать расширения django . Вы можете установить его с
$ pip install django-extensions
Запустите вашу оболочку с
./manage.py shell_plus --print-sql
Выполнить запрос
In [1]: Book.objects.all()
Out[1]: SELECT "book_book"."id", "book_book"."name", "book_book"."author_id" FROM "book_book" LIMIT 21
Execution time: 0.087548s [Database: default]
<QuerySet [<Book: The Stranger>, <Book: Atlas Shrugged>]>
Если вы не хотите добавлять --print-sql
каждый раз, в настройках django вы можете установить
SHELL_PLUS_PRINT_SQL = True
Альтернативный способ - включить ведение журнала для запросов базы данных.
LOGGING = {
'version': 1,
'loggers': {
'django.db.backends': {
'level': 'DEBUG',
'handlers': ['console'],
}
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'filters': ['require_debug_true'],
}
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
}
},
}
Добавьте это в свои настройки и перезапустите оболочку, чтобы увидеть запросы SQL.