Пытаетесь понять, как sql-запрос генерируется фреймворком django?

Я использую отладчик django в pycharm, чтобы увидеть, как ORM делает магию. У меня есть простая модель и очень простой запрос. Model.objects.get(id=1). Первый шаг по клику (отладчик) приводит меня к django.db.models.manager.py. Вызывается метод get класса ManagerDescriptor в этом модуле. Затем указатель переходит к django.db.models.query и как только метод init завершается, из ниоткуда формируется запрос. Откуда взялся запрос select Model.name, Model.age ... from Model?

Я уверен, что я что-то упускаю, если кто-то знает внутреннюю работу или может направить меня к любому руководству по этому вопросу, пожалуйста, направьте меня. Спасибо

Model.objects.get(id=1)

Django генерирует SQL запрос для ORM Querset, а не для отдельного объекта Я имею в виду, что вы можете вывести SQL запрос для .filter() или .all() не для .get(), как это...

NOTE - Здесь .get() метод возвращает один объект, а не возвращает Queryset.

obj = Model.objects.filter(id=1)
print(obj.query)
Вернуться на верх