Django маршрут к apps

Какие настройки прописать в config.py, чтобы можно было поместить все приложения в папку apps?


Ответы (1 шт):

Автор решения: WilteRatenau

Если вы используете Django то менеджмент всех ваших приложение происходит в файле setting.py , а именно переменная INSTALLED_APPS.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Допустим вы создаёте приложение путём вызова команды :

python manage.py startapp polls

И она у вас появляется на ряду со всеми папками.

pools
mysite (*)
__init__.py
manage.py
  • при условии ранее созданого проекта через команду django-admin startproject mysite

И если я правильно вас понял, вы хотите сделать некую папку apps , в которой будет не одно приложение (по типу pools), тогда создаёте просто такую папку, создаёте в ней файл

__init__.py

и перемещаете туда все свои приложения.

И теперь в настройках , в переменную INSTALLED_APPS добавляете

INSTALLED_APPS = [
    ...
    'apps.pools',
    'apps.pools2',
    ... and other
]

Но учтите, что для версии Django==3.2.* в каждом проекте, вам придётся в файле apps.py каждого вашего приложение изменить переменную name.

(до перемещения в папку apps)

from django.apps import AppConfig
class PoolsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'pools'

(после перемещения в папку apps)

from django.apps import AppConfig
class PoolsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'apps.pools'
→ Ссылка