ImportError: невозможно импортировать имя 'Affiliate' из частично инициализированного модуля 'affiliate.models' (скорее всего, из-за циклического импорта)

Я получаю ошибку кругового импорта в django и не могу решить эту проблему. Вот мой models.py в affiliate(app)

from member.models import Member

class SubAffiliate(models.Model):
    member_id = models.ForeignKey(Member, on_delete=models.CASCADE)

и вот мой models.py in member(app)

from affiliate.models import Affiliate

class Member(models.Model):
    affiliates = models.ManyToManyField(Affiliate, blank=True, related_name="members_affiliate")
<
import affiliate.models

и там использовать его следующим образом

affiliate.models.Affiliate

тогда я получаю эту ошибку AttributeError: module 'affiliate' has no attribute 'models'

что я должен сделать, чтобы устранить эту ошибку. Спасибо!

Две модели не могут импортировать друг друга. Вы можете работать со строковым литералом в случае, если вам нужно обратиться к модели другого модуля:

# no import from member.models!

class SubAffiliate(models.Model):
    member = models.ForeignKey(
        'member.Member',
        on_delete=models.CASCADE
    )

а для другого файла models.py можно также работать со строкой с помощью app_name.ModelName:

# no import from affiliate.models

class Member(models.Model):
    affiliates = models.ManyToManyField(
        'affiliate.Affiliate',
        blank=True,
        related_name='members_affiliate'
    )
Вернуться на верх