Django 如何解决循环进口问题
我有两个模型Django 如何解决循环进口问题,django,django-models,Django,Django Models,我有两个模型ai_output,它们定义了AIOutput和manual_overwrite与ManualOverwrite相互导入,因此我得到以下错误: 从main.models.manual\u覆盖导入手动覆盖 导入错误:无法导入名称 通过django文档,我能找到的唯一解决方案是通过删除其中一个文件中类的导入,并用包含类名称的字符串替换它来解决这个问题 因此: aioutput = models.ForeignKey(AIOutput, null=True, blank=True) 变成
ai_output
,它们定义了AIOutput
和manual_overwrite
与ManualOverwrite
相互导入,因此我得到以下错误:
从main.models.manual\u覆盖导入手动覆盖
导入错误:无法导入名称
通过django文档,我能找到的唯一解决方案是通过删除其中一个文件中类的导入,并用包含类名称的字符串替换它来解决这个问题
因此:
aioutput = models.ForeignKey(AIOutput, null=True, blank=True)
变成这样:
aioutput = models.ForeignKey('ai_output.AIOutput', null=True, blank=True)
但现在我明白了:
main.ManualOverwrite.aioutput:(fields.E300)字段定义一个关系
使用“ai_output.AIOutput”型号,该型号未安装或
抽象的
你知道如何解决循环进口的问题吗?任何提示都将不胜感激 很可能是您忘记将包含
AIOutput
模型的应用程序添加到已安装的应用程序中。如果情况并非如此,则在已安装的应用程序中将另一个应用程序移到这个应用程序之上应该可以解决问题。另一方面,当两个相关的东西是不同应用程序的一部分时,通常会发生循环导入,这可能是一个迹象,表明设计可能会得到改进,以便相关组件保留在同一个应用程序中。尽管如此,情况并非总是如此