我有這個錯誤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
)
現在要對“Maca”進行建模,我正在嘗試訪問這樣的每個“Maca2”物件
from maca2.models import Maca2
class Maca(models.Model)
...
@property
maca_has_maca2(self)
maca2 = Maca2.objects.filter(maca=self.id)
你能幫我處理這個嗎?
uj5u.com熱心網友回復:
您可以Maca2在maca_has_maca2屬性中匯入:
# no import of maca2.models
class Maca(models.Model):
# …
@property
def maca_has_maca2(self):
from maca2.models import Maca2
maca2 = Maca2.objects.all()
對于ForeignKeys、OneToOneFields 和ManyToManyFields,您可以使用具有 as 結構的字串文字來參考模型,例如:'app_name.ModelName'
# no import of maca2.models
class Maca(models.Model):
maca2 = models.ForeignKey(
'maca2.Maca2', on_delete=models.CASCADE
)
這避免了匯入模塊,從而避免回圈匯入。如果模型有相同的app_name,你可以參考這個'ModelName'。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317764.html
