Пытаетесь понять, как 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)