1. Как найти запрос, связанный с набором запросов?

Иногда вы хотите узнать, как Django ORM заставляет наши запросы выполняться или какой SQL соответствует коду, который вы пишете. Это очень просто. Вы можете получить str из любого queryset.query, чтобы получить sql.

У вас есть модель под названием Event. Для получения всех записей вы напишете что-то вроде Event.objects.all(), затем сделаете str(queryset.query).

>>> queryset = Event.objects.all()
>>> str(queryset.query)
SELECT "events_event"."id", "events_event"."epic_id",
    "events_event"."details", "events_event"."years_ago"
    FROM "events_event"
../_images/sql_query.png

Пример 2

>>> queryset = Event.objects.filter(years_ago__gt=5)
>>> str(queryset.query)
SELECT "events_event"."id", "events_event"."epic_id", "events_event"."details",
"events_event"."years_ago" FROM "events_event"
WHERE "events_event"."years_ago" > 5
Вернуться на верх