Приложения в подпапке в 1.7

У меня есть структура проектной папки, как это:

project
    applications
        __init__.py
        app1
        app2
        app3
    project
        __init__.py
        settings.py 

В моем settings.py я пытаюсь импортировать приложения, как это:

INSTALLED_APPS = (
    'django.contrib.admin',
    ...

    'applications.app1',
    'applications.app2',
    'applications.app3',
)

Но если я пытаюсь перенести одно из приложений, я получаю эту ошибку:

./manage.py makemigrations applications.app1
App 'applications.app1' could not be found. Is it in INSTALLED_APPS?

Что может быть не так? Этот вид настройки используется для работы с Django 1.6

2 ответа

Решение

Является ли папка приложений на вашем PYTHONPATH?

Вы можете добавить его в файл настроек, поставив это под BASE_DIR:

import sys
sys.path.append(os.path.abspath("applications"))

На самом деле для этого есть нативное решение Django. Из документов:

Многие команды принимают список "имен приложений". "Имя приложения" - это базовое имя пакета, содержащего ваши модели. Например, если ваш INSTALLED_APPS содержит строку "mysite.blog", приложение называется blog.

Другие вопросы по тегам