Как сказать 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

во всех трех файлах настроек.

Вернуться на верх