У меня 3 приложения, продукты, продажи, покупки. Каждое приложение имеет соответственно названный класс Модель, Продукт, Продажа и Покупка.
products/models.py
class Product(models.Model):
Name = models.CharField(max_length=32)
sales/models.py
class Sale(models.Model):
Product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
purchases/models.py
class Purchase(models.Model):
Product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
И я решил создать собственные менеджеры для классов Модели, чтобы я мог хранить все логи c в модели. файлы (переопределяя объекты attr для каждого класса), когда я пишу методы в настраиваемом менеджере, я импортировал модель продажи. В products.models и модели Product в sales.models, которая создает циклическую ссылку, я смог сойти с рук. выполняя импорт в самих методах, но я помню, как читал в Интернете, что циклический импорт является признаком неправильной записи кода.
Поэтому мой вопрос заключается в том, как в этом случае избежать циклического импорта и получить доступ к модели продукта в sales.models и продажа в products.models.