@tttttv

Как избавиться от большого models.py?

Столкнулся с проблемой быстро растущего models.py на django, около 5т строк в сумме, возникла необходимость разделить на разные файлы. Разбил штук на 6, по документации сделал пакет с __init__.py, там все импорты нормально стоят. Но эти модели друг с другом очень тесно связаны, во многих используется класс моделей из других файлов, отсюда возникает большое количество импортов между ними и ошибка circular import, не представляю как можно это исправлять. Как мне кажется, единственный выход - каждый раз вызывать apps.get_model() внутри каждого метода, но уж больно криво звучит.
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 1
Tomio
@Tomio
backend developer (python, php)
Чтобы избежать циклического импорта, используйте либо, как вы упомянули, apps.get_model(), либо импорт модуля целиком, а не конкретно моделей. То есть, не
from somemodule.models import SomeModel,
а
import somemodule.models as somemodule_models
и затем к модели обращайтесь в коде через
somemodule_models.SomeModel.objects(...)...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы