Django-循环导入多个文件



我在一个包中有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)

返回下面提到的错误ImportError:无法导入名称"ATestOne">

请提供解决此问题的建议。提前谢谢。

您可以通过使用字符串引用这些模型来避免循环导入问题,例如

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

(如果我猜对了,app是您的模型所在的应用程序的名称(

最新更新