Django: импорт моделей в models.py из внешнего проекта не работает - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь определить некоторые модели Django вне папки проекта Django (я просто использую возможности Django ORM без функциональности веб-приложения) и импортировать их в models.py приложения в проекте Django.

Я знаю, что models.py можно «разделить», создав пакет моделей, содержащий несколько модулей, определяющих модели и импортирующих в __init__.py, поэтому я подумал, что это будет работать точно так же.

Каталогструктура выглядит следующим образом:

- root
  - tasks
    - taskA
      - models.py
    - taskB 
      - models.py
  - orm
    - apps
      - app1
        - models.py
        - base_models.py
        - apps.py
      - app2
        - models.py
        - base_models.py
        - apps.py
    - manage.py
    - settings.py

В основном приложения Django классифицируют тип модели (абстрактная базовая модель определена в appX.base_models.py), а задачи определяют и используют свои собственные версии / подклассыразличные типы моделей, которые затем импортируются в приложение django models.py для управления Django

, например:

в root.orm.apps.app1.models.py:

from root.tasks.taskA.models import ModelType1A
from root.tasks.taskB.models import ModelType1B

Тем не менее, я пытаюсь запустить задачу (которая вызывает django.setup ()) или make.py makemigrations, я получаю:

RuntimeError: Класс модели root.tasks.taskA.models.ModelType1A не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS

И да, приложения включены в INSTALLED_APPS (это импорт из root.orm.apps.app1.models.pyчто вызывает ошибку, поэтому Django обнаруживает приложение и пытается получить его модели, но, похоже, не распознает их, когда они импортируются из внешнего проекта или чего-то еще)

Есть ли способ сделать эторабота?

ура

...