Я хочу иметь следующую структуру для моделей и форм внутри моего приложения:
project/
--------app_name/
-----------------forms/
-----------------------__init__.py
-----------------------a.py
-----------------------b_folder/
--------------------------------__init__.py
--------------------------------b1.py
--------------------------------b2.py
-----------------models/
-----------------------__init__.py
-----------------------a.py
-----------------------b_folder/
--------------------------------__init__.py
--------------------------------b1.py
--------------------------------b2.py
Разделение приложения на разные приложения в данном конкретном случае не имеет смысла.
На данный момент все вписывается в models.py и forms.py, но каждая из них содержит около 10 тыс. Строк.
Идея состоит в том, чтобы иметь возможность разделить эти монолиты на маленькие объекты, чтобы упростить поддержку кода всего проекта.
Для деталей моделей это работает: я смог запустить сервер без ошибок.
Это вызывает сбой, когда я применяю тот же метод к формам.
Вот содержание __init__.py
формы / __ __ INIT. Ру
from .a import *
from .b_folder import *
форма / b_folder / __ __ INIT. Р
from .b1 import *
from .b2 import *
модели / __ __ INIT. Ру
from .a import *
from .b_folder import *
Модель / b_folder / __ __ INIT. Р
from .b1 import *
from .b2 import *
Теперь, как импортировать следующее?
форма / b_folder_b1.py
#how to import the model a or b1?
from app_name.models import AModel, BOneModel
Я получаю следующую ошибку:
ImportError: cannot import name 'BOneModel' from 'app_name.models' (/project/app_name/models/__init__.py)
EDIT:
Ошибка, кажется, опечатка в моем коде.
Этот способ является правильным способом заставить его работать, и, похоже, он совсем не мешает миграции.
Так что мой вопрос развивается немного:
Это «хороший» шаблон дизайна, чтобы сделать это таким образом?