Django - круговой импорт с несколькими файлами - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть 3 python файлов в пакете, я пытаюсь импортировать класс из одного файла в другой файл 2. Но я получаю ошибку.

models
   __init__.py
   a.py
   b.py
   c.py

a.py

class ATestOne()
    pass

class ATestTwo()
    pass

class ATestThree()
    pass

b.py

from app.models.a import ATestOne, ATestTwo
from app.models.c import CTestOne

class BTestOne()
    field1 = models.ForeignKey(ATestOne)

class BTestTwo()
    field1 = models.ForeignKey(CTestOne)

c .py

from app.models.a import ATestOne, ATestThree
from app.models.b import BTestOne
class CTestOne()
    field1 = models.ForeignKey(ATestOne)

 class CTestTwo()
        field1 = models.ForeignKey(BTestOne)

Возвраты ниже указанных error ImportError: невозможно импортировать имя 'ATestOne'

Пожалуйста, советуйте в решении этой проблемы. Заранее спасибо.

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете избежать проблем кругового импорта, ссылаясь на эти модели, используя строки, например,

class BTestOne()
    field1 = models.ForeignKey('app.ATestOne')

class BTestTwo()
    field1 = models.ForeignKey('app.CTestOne')

(Если я правильно догадался, что app - это имя вашего приложения, в котором находятся ваши модели)

...