Fix multi-tenant subdomain 404 and Debug Toolbar integration. Set ALLOWED_HOSTS='*', added USE_X_FORWARDED_HOST, and fixed django-tenants middleware order.

This commit is contained in:
2026-01-08 02:23:27 +03:00
parent b7fffb55bf
commit a26e709caa
5 changed files with 1150 additions and 13 deletions

View File

@@ -73,6 +73,7 @@ SHARED_APPS = [
# Celery results (для сохранения статуса асинхронных задач)
'django_celery_results',
'simple_history', # Перенесли сюда для корректной инициализации моделей
]
# Tenant apps: создаются в отдельной схеме для каждого тенанта (изолированные данные)
@@ -81,7 +82,6 @@ TENANT_APPS = [
'django.contrib.auth', # Дублируем для tenant схем
# Приложения с бизнес-логикой (изолированные для каждого магазина)
'simple_history', # История изменений для каждого тенанта
'nested_admin',
'django_filters', # Фильтрация данных
'user_roles', # Роли пользователей
@@ -96,9 +96,12 @@ TENANT_APPS = [
# Объединяем для INSTALLED_APPS
INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS]
# Django Debug Toolbar
# Django Debug Toolbar (должен быть в SHARED_APPS для работы django-tenants)
if DEBUG_TOOLBAR_ENABLED:
INSTALLED_APPS += ['debug_toolbar']
if 'debug_toolbar' not in SHARED_APPS:
SHARED_APPS.append('debug_toolbar')
# Пересобираем INSTALLED_APPS с учетом тулбара
INSTALLED_APPS = list(SHARED_APPS) + [app for app in TENANT_APPS if app not in SHARED_APPS]
# Модели тенанта и домена
TENANT_MODEL = "tenants.Client"
@@ -153,6 +156,11 @@ ROOT_URLCONF = 'myproject.urls'
PUBLIC_SCHEMA_URLCONF = 'myproject.urls_public'
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True
# ============================================
# TEMPLATES
# ============================================

View File

@@ -33,11 +33,12 @@ if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# Django Debug Toolbar (только в DEBUG режиме)
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
# Django Debug Toolbar (только если включено в настройках)
if getattr(settings, 'DEBUG_TOOLBAR_ENABLED', False):
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
else:
# Force serve media files in production (for NAS setup)
urlpatterns += [

View File

@@ -24,11 +24,12 @@ if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# Django Debug Toolbar (только в DEBUG режиме)
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
# Django Debug Toolbar (только если включено в настройках)
if getattr(settings, 'DEBUG_TOOLBAR_ENABLED', False):
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
else:
# Force serve media files in production (for NAS setup)
urlpatterns += [