строку:
                  
                  
                  DEBUG = bool(os.environ.get('DEBUG', default=0))
                  
                  
                  Значение переменной окружения DEBUG=1
                  
                  
                  Проблема: при таком варианте, сервер ведет себя как в режиме разработки(перезапускается при изменении файлов), но не подгружает статические файлы.
                  
                  
                  Что сделал:
                  
                  
                  1. запустил manage.py shell и проверил, что лежит в переменной(дальше не копипаста) DEBUG
                  
                  
                  
                  
                  
                  from django.conf import settings
                  
                  
                  settings.DEBUG
                  
                  
                  [out] True
                  
                  
                  type(settings.DEBUG)
                  
                  
                  [out] <class 'bool'>
                  
                  
                  
                  
                  
                  2. Поменял строку с указанием DEBUG в settings.py на
                  
                  
                  DEBUG=True
                  
                  
                  Статические файлы стали подгружаться
                  
                  
                  
                  
                  
                  Вопрос: кто-то встречал такую проблему или может есть советы, куда копать, чтобы понять что происходит?
                  
                  
                  django 3.2.4
                  
                  
                
На сервере статика должнаотдаваться nginx, а что за волшебство происходит с DEBUG не знаю)
на проде так и настроил, но на локальной машине удобнеe задать переменные окружения и запускать через runserver меня в тупик скорее поведение django поставило, на первый взгляд в settings.DEBUG при любом варианте лежит True, почему при DEBUG = bool(os.environ.get('DEBUG', default=0)) статические файлы не подгружаются, а при DEBUG=True подгружаются
А меняешь, прям эту же строку?
ну, комментирую DEBUG = True и сразу под ней пишу свою
А точно в переменной окружения есть значение?
echo $DEBUG [out] 1 Без нее бы DEBUG = bool(os.environ.get('DEBUG', default=0)) выдавало False
А проект запускается из консольки? т.е. в одной консольке запускается shell и runserver? Один останавливается и другой запускается?
запускал в соседних, не обратил внимания был запущен runsrver при запуске shell(при каждом изменении shell перезапускаю) или нет, могу проверить если есть идея Сейчас задал export DEBUG= но в shell он все еще True
идею понял, сейчас проверю
А вообще, чтобы не сттрадать с этими переменными окружения, есть вот такая штука https://pypi.org/project/python-environ/
в той же консоли, что и запуск runserver echo $DEBUG [out] 1 Но manage.py shell from django.conf import settings settings.DEBUG [out] False Стало страннее, но куда копать понятно) спасибо, и за либу
Обсуждают сегодня