1. How to find the query associated with a queryset?

有时你想知道Django ORM如何执行我们的查询或者你正在编写的代码的相应SQL是什么。 这非常直截了当。 您可以获取queryset.querystr来获取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

Example 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