DEBUG = False вызывает 500 ошибок и не может принудительно записать все на консоль в Django - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь устранить ошибку 500, так как всякий раз, когда я устанавливаю DEBUG = False в Django, я получаю ошибку 500.

Я попытался установить ALLOWED_HOSTS = ['*']

Я попытался настроить LOGGING для отладки и принудительного ведения журнала на консоли с помощью al oop. Однако это не работает, поэтому есть большая вероятность, что он не делает то, что я думаю, он должен делать.

Я прикрепил фрагмент из своего файла настроек:

settings.py :

DEBUG = False

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
        },
    },
}

for logger in LOGGING['loggers']:
    LOGGING['loggers'][logger]['handlers'] = ['console']


ALLOWED_HOSTS = ['*']

Ответы [ 2 ]

2 голосов
/ 26 мая 2020

Решением моей проблемы стало добавление следующей команды в settings.py

DEBUG_PROPAGATE_EXCEPTIONS = True

, описанной здесь: https://docs.djangoproject.com/en/2.0/ref/settings/#debug -propagate-exceptions

В моем конкретном случае оказалось, что я получал ошибку значения, которая была исправлена ​​путем выполнения collectstati c

python manage.py collectstatic

Связано:

ValueError: отсутствует запись в манифесте staticfiles для 'favicon.ico'

0 голосов
/ 26 мая 2020

Сам серверу необходимо просмотреть файлы журнала. Причина в том, что если django делает ошибку, это означает, что интерпретатор setting.py еще не вошел в файл. По той же причине вы можете видеть логи на самом сервере. Все, что там четко написано

Вот попробуй тоже добавить, иногда помогает settings.py

    MIDDLEWARE = [
    'whitenoise.middleware.WhiteNoiseMiddleware', #Добавляем до 'django.middleware.security.SecurityMiddleware',
]
...