我有这个错误ImportError: cannot import name 'Maca' from partially initialized module 'maca.models' (most likely due to a circular import)
。
我有这样的代码
from maca.models import Maca
class Maca2(models.Model)
maca = models.ForeignKey(
Maca, on_delete=models.CASCADE
)
现在来模拟"澳门";我正在尝试访问每一个"澳门人"。像这样的对象
from maca2.models import Maca2
class Maca(models.Model)
...
@property
maca_has_maca2(self)
maca2 = Maca2.objects.filter(maca=self.id)
你能帮我处理这个吗?可以在maca_has_maca2
属性中导入Maca2
:
#noimport of maca2.models
class Maca(models.Model):
# …
@property
def maca_has_maca2(self):
from maca2.models import Maca2
maca2 = Maca2.objects.all()
对于ForeignKey
s,OneToOneField
s和ManyToManyField
s,您可以使用具有'app_name.ModelName'
结构的字符串字元来引用模型,例如:
#noimport of maca2.models
class Maca(models.Model):
maca2 = models.ForeignKey(
'maca2.Maca2', on_delete=models.CASCADE
)
这样可以避免导入模块,从而避免循环导入。如果模型具有相同的app_name
,您可以通过'ModelName'
引用它。