Django ImportError: cannot import name 'Post' from partially initialized module (скорее всего, из-за циклического импорта)
Итак, у меня есть приложение tentacle
, в котором есть файл processor.py
, который импортирует некоторые модели. В models.py
также импортируется эта функция, поскольку она используется в методе save
модели.
Теперь при миграции я получаю ошибку кругового импорта. Я уже пробовал these и изменил импорт с относительного на абсолютный, что не помогло.
Итак, как "взаимно" поделиться моделями и функциями внутри processor.py
и models.py
, которые находятся в приложениях-близнецах?
(Она работает, когда я добавляю эту функцию как метод модели напрямую, но не уверен, что это отличный дизайн)
# models.py from sibling module
class Post(models.Model):
"""
A table that stores blog posts
"""
# Choices for Trade Direction
TRADE_DIRECTION = [
('Long', 'Long'),
('Short', 'Short')
]
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # Obfuscate real post amount
company = models.ForeignKey('board.Company', on_delete=models.CASCADE, null=True)
...
# Overwrite save method to pull latest daily prices and freeze them ot this post's creation time
def save(self, *args, **kwargs):
# Pull the daily closes from API (last 90 days)
# and assign the Post id as FK to freeze them to the post
run_daily_quotes(self.company.symbol, 90, self, self.company)
# call the save() method of the parent
super(Post, self).save(*args, **kwargs)