Ошибка сервера django (500) при DEBUG=False
Это base.py
файл
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent.parent
SECRET_KEY = 'h@1lneuTr@lt1P - Holla!!! this is something crazy, $2423$#@$#@E@e#R3\e['
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
INSTALLED_APPS = [
# typical django code...
MIDDLEWARE = [
# typical django code...
]
ROOT_URLCONF = 'neutraltip.urls'
TEMPLATES = [
# typical django code...
]
WSGI_APPLICATION = 'neutraltip.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
AUTH_PASSWORD_VALIDATORS = [
# typical django code...
]
STATIC_URL = '/static/'
# Static settings
STATICFILES_DIRS = [
BASE_DIR / 'static',
]
# Media settings
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
Это production.py
from .base import *
import environ
import django_heroku
env = environ.Env(
DEBUG=(bool, False),
)
SECRET_KEY = 'lol'
# right now for convenience I've hard-coded these
# despite having environ package
DEBUG = False
ALLOWED_HOSTS = ['*']
MIDDLEWARE.insert(1, 'whitenoise.middleware.WhiteNoiseMiddleware')
DATABASES['default']['CONN_MAX_AGE'] = 60
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedStaticFilesStorage'
# Activate Django-Heroku.
django_heroku.settings(locals())
Я переименовал оригинальную settings.py
в base.py
и расширил ее до production.py
. А также обновил manage.py
, wsgi.py
и asgi.py
.
В основном следуя этому подходу -> https://simpleisbetterthancomplex.com/tips/2017/07/03/django-tip-20-working-with-multiple-settings-modules.html
Все выглядит просто прекрасно для меня
скриншот терминала - ошибка запроса 500
Этот код выдает Ошибку сервера (500).
Проблема не в ALLOWED_HOSTS
, это точно.
Многие люди сталкиваются с той же проблемой и пока не получили адекватного ответа!
Пожалуйста, помогите мне с ответом с объяснением.
Вы можете записать все ошибки в файл с помощью нижеприведенной команды, и она будет записывать их даже тогда, когда DEBUG=False
Обновление: Попробуйте это.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'formatters': {
'verbose': {
'format': '[contactor] %(levelname)s %(asctime)s %(message)s'
},
},
'handlers': {
# Send all messages to console
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
},
# Send info messages to syslog
'syslog':{
'level':'INFO',
'class': 'logging.handlers.SysLogHandler',
'facility': SysLogHandler.LOG_LOCAL2,
'address': '/dev/log',
'formatter': 'verbose',
},
# Warning messages are sent to admin emails
'mail_admins': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
},
# critical errors are logged to sentry
'sentry': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'raven.contrib.django.handlers.SentryHandler',
},
},
'loggers': {
# This is the "catch all" logger
'': {
'handlers': ['console', 'syslog', 'mail_admins', 'sentry'],
'level': 'DEBUG',
'propagate': False,
},
}
}