Django: проблема с добавлением приложений в isntalled apps при их перемещении из корневого каталога
я использую django 4.2. проект работал, когда приложения находились в базовом каталоге (где находится manage.py), затем я создал каталог apps и перенес приложения в этот каталог, поэтому структура выглядит следующим образом (частично) :
/project/
/manage.py
/config/
/settings/
/ base.py # base settings file
/ local.py
/ testing.py
/ __init__.py
/__init__.py
/requirements/
/siteapps/
/products/
/ (file of products app including __init__.py
/accounts/
/ (file of accounts app including __init__.py
/ (other apps)
/__init__.py
а это связанный код, который я использую в настройках base.py :
BASE_DIR = Path(__file__).resolve().parent.parent.parent
print(f"base dir => {BASE_DIR}")
# output :
# base dir => /code
# /code is base directory is docker container the project running in.
print("path =>", sys.path)
# output:
# path => ['/code', '/usr/local/lib/python311.zip', '/usr/local/lib/python3.11', '/usr/local/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/site-packages']
INSTALLED APPS = [
... # other apps including django's and third parties,
# LOCAL APPS
"siteapps.accounts.apps.AccountsConfig",
"siteapps.products.apps.ProductsConfig",
]
Ошибка, которую я получаю:
Traceback (most recent call last):
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.11/threading.py", line 982, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.11/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.11/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
autoreload.raise_last_exception()
File "/usr/local/lib/python3.11/site-packages/django/utils/autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 394, in execute
autoreload.check_errors(django.setup)()
File "/usr/local/lib/python3.11/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.11/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.11/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/django/apps/config.py", line 212, in create
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Cannot import 'accounts'. Check that 'siteapps.accounts.apps.AccountsConfig.name' is correct.
Итак, моя проблема в том, что когда приложения находились в базовом каталоге, я мог добавлять их в установленные приложения без проблем, но теперь я переместил их в каталог apps и постоянно получаю ошибку. Я пробовал разные способы, но все равно получаю ту же ошибку. Мой вопрос в том, как я могу организовать свои приложения, если я не могу переместить их из корневого каталога? Я очень новичок в django, любая помощь будет оценена по достоинству
Можете ли вы показать содержимое apps.py каждого из ваших приложений? Посмотрим, правильно ли оно настроено.
- также проверьте несоответствие прописных и строчных букв в ваших приложениях (учетных записях) apps.py .