Нужен для принтов sql-кода, которые генерирует джанго.
- Использование в качестве декоратора:
@PrintSqlTool()
def some_func():
...
models.SomeModel.objects.first()
...
models = models.SomeModel.objects.all()
models_data = get_models_data(models)
...
return smthВ этом случае мы увидим все запросы, которые проходили в функции
- Использование в качестве контекстного менеджера
def some_func():
...
models.SomeModel.objects.first()
...
with PrintSqlTool():
models = models.SomeModel.objects.all()
models_data = get_models_data(models)
...
return smthВ этом случае мы увидим все запросы, которые были выполнены внутри блока контекстного менеджера.
Мы сможем увидеть запросы только к одной из бд, по умолчанию это бд, у которой alias = default Если нужно указать другую бд, для которой нужно принтить запросы, то есть аргумент db_alias:
@PrintSqlTool(db_alias='some_db_alias')
def some_func():
...
models.SomeModel.objects.first()
...
models = models.SomeModel.objects.all()
models_data = get_models_data(models)
...
return smth