Как сказать Django, что он должен прочитать файл some_folder/local.py как settings.py
Я создаю приложение на Django 4.1.2, и я следую руководству по приложению, созданному на Django 1.10.3.
В самом начале преподаватель заменяет файл settings.py на каталог settings
, содержащий файлы.
local.py
production.py
base.py
каждый из них имеет в качестве содержимого точную копию settings.py, за исключением того, что production.py имеет DEBUG=False
вместо True
.
Затем он изменяет в каждом из этих файлов переменную BASE_DIR с
наBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))
to
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Затем, внутри новой папки settings
, он создает файл __init__.py
, содержащий следующее:
from .base import *
from .production import *
try:
from .local import *
except:
pass
затем он запускает python manage.py runserver
и сервер работает правильно.
Я сделал такую же замену "файл на папку", но я не знаю, как обновить содержимое переменной BASE_DIR.
На самом деле, из-за превосходящей версии Django в моем проекте, BASE_DIR был построен Django как:
BASE_DIR = Path(__file__).resolve().parent.parent
Как я могу изменить его, чтобы он соответствовал изменениям, сделанным учителем?
Я пробовал с:
BASE_DIR = Path(__file__).resolve().parent.parent.parent
тогда выполните python manage.py runserver
, но он возвращает
Итак, похоже, что он не может найти файл settings.py
, но как я могу сказать Django, что я превратил его в папку, содержащую три разных файла, или, лучше, как я могу сказать Django, что он должен читать settings/local.py
вместо settings.py
?
Я по ошибке поместил папку settings в path.
my_twitterlike_app > settings
вместо
my_twitterlike_app > my_twitterlike_app > settings
Сервер работает нормально с:
BASE_DIR = Path(__file__).resolve().parent.parent.parent
во всех трех файлах настроек.