Есть такие модели:
app1/models.py:from django.db import models
from app2.models import B
from app3.models import C
class A(models.Model):
pass
app2/models.py:from django.db import models
from app1.models import A
class B(models.Model):
data = models.ForeignKey(A)
app3/models.py:from django.db import models
class C(models.Model):
pass
app4/models.py:from django.db import models
from app1.models import A
class D(models.Model):
data = models.ForeignKey(models.Model)
Возникает циклический импорт модулей - как следствие, ошибка при миграции.
Какова должна быть правильная логика импорта данных модулей? Не просто же так импортировать, аргументируя тем, что так не работает. Должна быть определенная логика импорта, которая прослеживается в каждом приложении.
P.S. При этом, все приложения содержат только те модели, которые относятся к ним самим. База нормализована - нет повторяющихся полей.
P.P.S.
1) Вынести класс A в отдельный файл не вариант - потому что появляется отдельный файл, все модели должны хранится в одном месте.
2) Перенести инструкции импорта после объявления класса в
app1 также не вариант - неправильно и некрасиво.
3) Инструкцию импорта в функцию не хочу выносить - некрасиво.