Как отключить панель инструментов отладки Django во время рендеринга шаблона?
Я использую панель инструментов отладки Django в своей среде разработки, и она очень полезна для отладки. Однако я хочу отключить ее при рендеринге определенного шаблона. Есть ли способ условно отключить панель инструментов отладки для определенных представлений или шаблонов?
Вот что я пробовал до сих пор:
- Использование настроек.отлаживать: Я знаю, что панель инструментов отображается только при DEBUG = True в settings.py, но я не хочу отключать ее для всего проекта, только для определенных представлений или шаблонов.
- Контекст шаблона: я также рассматривал возможность передачи переменной контекста в шаблон для управления видимостью панели инструментов, но я не уверен, как это интегрировать с поведением панели инструментов.
Вот упрощенная версия моей точки зрения:
from django.shortcuts import render
def my_view(request):
context = {'some_data': 'data'}
return render(request, 'my_template.html', context)
И в моем settings.py:
DEBUG = True
if DEBUG:
INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
версия django_debug_toolbar - 3.8.1
Есть ли способ отключить панель инструментов отладки Django специально для этого представления или шаблона?
Вы можете указать SHOW_TOOLBAR_CALLBACK
, который определяет, хотите ли вы показывать панель инструментов для определенного запроса:
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': 'app_name.debug.show_toolbar',
}
а затем проверьте путь запроса:
# app_name/debug.py
def show_toolbar(request):
# The toolbar renders correctly except for my view.
return request.path != '/path/to/my-view/'
или мы можем сначала попытаться решить эту проблему:
# app_name/debug.py
from django.urls import resolve
def show_toolbar(request):
return resolve(request.path).func is not my_view