Я git clone
заполнил репозиторий вашего проекта Django и запустил его, выполнив следующее:
1. Переместить приложения вашего проекта в корень проекта
Это общий стандарт Django. Я сделал ./manage.py startapp base
, чтобы начать все заново, а затем добавить все файлы / каталоги из каталога apps/base
в только что созданный каталог base
. Это должно выглядеть следующим образом в корневом каталоге вашего проекта (где DzenanElvir
& base
- это каталоги):
(.env) Cole:StackOverflow/Razred-Management ‹master*›$ ls -l
total 512
drwxr-xr-x 9 Cole staff 288 Jul 2 23:50 DzenanElvir
-rw-r--r-- 1 Cole staff 1055 Jul 2 23:48 LICENSE
-rw-r--r-- 1 Cole staff 299 Jul 2 23:48 Pipfile
-rw-r--r-- 1 Cole staff 27343 Jul 2 23:48 Pipfile.lock
-rw-r--r-- 1 Cole staff 72 Jul 2 23:48 Procfile
-rw-r--r-- 1 Cole staff 1160 Jul 2 23:48 README.md
drwxr-xr-x 15 Cole staff 480 Jul 3 00:06 base
...
И вот так в вашем новом каталоге приложений base
:
(.env) Cole:Razred-Management/base ‹master*›$ ls -l
total 80
-rw-r--r-- 1 Cole staff 53 Jul 2 23:58 __init__.py
drwxr-xr-x 11 Cole staff 352 Jul 3 00:08 __pycache__
-rw-r--r-- 1 Cole staff 63 Jul 3 00:04 admin.py
-rw-r--r-- 1 Cole staff 83 Jul 3 00:04 apps.py
-rw-r--r-- 1 Cole staff 2004 Jul 2 23:58 forms.py
drwxr-xr-x 5 Cole staff 160 Jul 3 00:06 migrations
-rw-r--r-- 1 Cole staff 1126 Jul 2 23:58 models.py
-rw-r--r-- 1 Cole staff 2236 Jul 2 23:58 postsView.py
-rw-r--r-- 1 Cole staff 1913 Jul 2 23:58 pregledView.py
drwxr-xr-x 3 Cole staff 96 Jul 2 23:58 templates
-rw-r--r-- 1 Cole staff 60 Jul 3 00:04 tests.py
-rw-r--r-- 1 Cole staff 1425 Jul 2 23:58 urls.py
-rw-r--r-- 1 Cole staff 343 Jul 2 23:58 views.py
2. Добавьте base
приложение к INSTALLED_APPS
более понятным способом
Обратите внимание на новый файл base/apps.py
, мы собираемся использовать его класс AppConfig
, чтобы объявить его установленным приложением. Заменить объявление INSTALLED_APPS
'base'
на 'base.apps.BaseConfig'
.
3. Переработайте вашу settings.BASE_DIR
переменную
Как правило, путь к файлу настроек проекта Django - projectname/settings.py
, но для отдельных настроек - projectname/settings/<env_name>.py
.
Следовательно, BASE_DIR
необходимо переработать из:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
до:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
для учета дополнительной директории между корнем вашего проекта и файлом настроек.
4. Миграция моделей
Выполнить ./manage.py makemigrations && ./manage.py migrate
.
Также, как примечание, каталоги migrations
не должны быть в .gitignore
. Читайте: Должен ли я добавлять файлы миграции Django в файл .gitignore?
И с этим я смог запустить скрипт ниже, в корне проекта Django, без ошибки:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DzenanElvir.settings.base")
import django
django.setup()
from base.models import ModelRazred