Панель инструментов отладки Django не перехватывает запрос из локальной базы данных
django = "4.0.8"
django-debug-toolbar = "^4.3.0"
drf-spectacular = "^0.26.5"
Контейнер Django подключен к локальной базе данных. Поэтому при вызове API в ответ возвращаются данные, полученные из локальной базы данных. Но на панели инструментов отладки нет sql-запроса.
Когда я захожу на страницу SQL, то существуют только эти операторы.
SQL queries from 0 connections
No SQL queries were recorded during this request.
Я установил host.docker.internal
для подключения контейнера к локальной базе данных, которая находится на хосте.
extra_hosts:
- "host.docker.internal:host-gateway"
.local.env
DB_ENGINE="django.contrib.gis.db.backends.postgis"
DB_HOST="host.docker.internal"
DEBUG=True
Я назначил True и False для INTERCEPT_REDIRECTS. Но не работает
Почему панель отладки django не может перехватить sql-запрос?
local_settings.py
from dotenv import load_dotenv
load_dotenv(".env.local")
from .base_settings import *
import socket
DEBUG = True
LOGGING["loggers"]["django"]["handlers"] = ["console", "file"]
CORS_ALLOWED_ORIGINS = [
"http://localhost:8000",
"http://127.0.0.1:8000",
"http://localhost:80",
"http://127.0.0.1:80",
"http://localhost:3000",
"http://127.0.0.1:3000",
"http://host.docker.internal:8000",
]
CORS_ALLOW_METHODS = [
"GET",
"POST",
]
INTERNAL_IPS = [
"*",
"127.0.0.1",
"localhost",
"192.168.0.1",
"10.0.2.2",
"host.docker.internal",
]
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
INTERNAL_IPS += [".".join(ip.split(".")[:-1] + ["1"]) for ip in ips]
def show_toolbar(request):
return True
DEBUG_TOOLBAR_CONFIG = {
"INTERCEPT_REDIRECTS": True,
"SHOW_TOOLBAR_CALLBACK": show_toolbar,
}
if DEBUG:
import mimetypes
mimetypes.add_type("application/javascript", ".js", True)
base_settings.py
#...
INSTALLED_APPS = [
"django.contrib.staticfiles",
"drf_spectacular",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"real_estate",
"accounts",
"modu_property",
"django_celery_beat",
"rest_framework",
"rest_framework_simplejwt",
"django.contrib.gis",
"debug_toolbar",
"corsheaders",
]
REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": [
# "rest_framework_simplejwt.authentication.JWTAuthentication"
],
"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema",
}
MIDDLEWARE = [
"corsheaders.middleware.CorsMiddleware",
"debug_toolbar.middleware.DebugToolbarMiddleware",
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware", # for django debug toolbar css
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
#...
urls.py
urlpatterns = []
if DEBUG:
urlpatterns += [
# path(
# "__debug__",
# include("debug_toolbar.urls"),
# name="debug_toolbar_without_slash",
# ),
path(
"__debug__/", include("debug_toolbar.urls"), name="debug_toolbar_with_slash"
),
]
#...
urlpatterns += (
[
path(
"api/schema",
SpectacularAPIView.as_view(),
name="schema",
),
path(
"api/docs",
SpectacularSwaggerView.as_view(url_name="schema"),
name="swagger-ui",
),
path(
"api/redoc",
SpectacularRedocView.as_view(url_name="schema"),
name="redoc",
),
]
)