我有两个应用程序说,app1和app2,我在它的模型。你知道吗
from app2.models import SecondModel
class FirstModel(models.Model):
first_field = models.ManyToManyField(SecondModel, blank=True)# or Foreign Key
from app1.models import FirstModel
class SecondModel(models.Model):
second_field = models.ForeignKey(FirstModel)
当我这样做,我得到导入错误。你知道吗
无法导入名称“FirstModel”
为什么会这样?你知道吗
错误是因为您有一个循环导入。两个模块不可能相互导入。你知道吗
在这种情况下,您不需要将模型导入每个应用程序。删除导入,改为使用字符串
app_label.ModelName
。你知道吗这里有名字冲突。。您在型号.py然后定义了
FirstModel
,根据上面的代码,这可能是个问题。此外,导入错误通常意味着,没有从导入它的位置定义FirstModel。你知道吗但是,不导入FKs的更通用方法通常是
其中appName是您尝试从中导入模型的应用程序,modelName是您尝试创建关系的模型。这有助于你尝试这样做。你知道吗
假设您的应用程序名为“app”,并且您正尝试创建一个从第一个模型到第二个模型的多对多关系,该类在第一个模型之后声明
那只是把你的appname.modelName文件内部字符串:)
此外,您的
ManyToManyField()
声明中有一个缺陷,即您不需要在多对多中定义blank。db的工作方式是,他们创建第三个数据库表来存储多对多关系。你知道吗希望有帮助
//鼠标。你知道吗
相关问题 更多 >
编程相关推荐