Starck43
@Starck43
Web разработчик (Python, PHP, SQL + frontend )

Как в Django задать путь приложению на уровень вверх относительно папки с проектом?

Подскажите, как сделать так, чтобы были доступны приложения, расположенные на одном уровне с проектом?
у меня вот такая структура:
library_project
├── library
│   ├── asgi.py
│   ├── __init__.py
│   ├── __pycache__
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── catalog
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── venv
    ├── bin
    ├── include
    ├── lib
    ├── pyvenv.cfg
    └── share

Я пробовал в settings.py добавить строки
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, '.'))


В INSTALLED_APPS = [....., 'catalog']

запускаю сайт 127.0.0.1:8000/catalog
Page not found

Что не так делаю?
  • Вопрос задан
  • 1037 просмотров
Решения вопроса 1
Starck43
@Starck43 Автор вопроса
Web разработчик (Python, PHP, SQL + frontend )
Решил проблемку.
Я решил перенести приложение в папку apps и внес изменения в settings.py:
Оттолкнулся от существующей переменной BASE_DIR
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DrRichMan
Нашел другой способ:
Добавить к manage.py и wsgi.py (и к celery.py, если вы используете Celery):

import os, sys
from django.conf import settings
sys.path.append(os.path.join(settings.BASE_DIR, "apps"))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы