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)

enter image description here

Вернуться на верх