将导入更改为如下所示:
from app import models
</code>
然后使用
models.WidgetModel
/
models.VisualizationModel
代替。
问题是您正在创建一个循环导入依赖项,其中两个文件都要求在处理之前已经处理了另一个文件。通过移动导入整个
models
命名空间而不是在导入时尝试导入特定的模型名称,您可以避免导入依赖于完全处理的文件。这样,在尝试调用另一个创建的对象之前,可以完全处理这两个文件。
但是,在这种情况下,它可能仍然不起作用,因为您试图立即在类定义的一部分中使用导入,该定义在处理时进行评估。
看起来你正试图定义双向关系 -
backref
参数旨在自动执行此操作,而无需在两个模型上指定关系。 (
backref
告诉sqlalchemy要添加到哪个字段
其他
模型指向链接到它的原始模型)。因此,您可能不需要首先执行这两种导入。
例如,事实
Visualization.widget
定义为
backref=”visualizations”
意思是
Widget.visualizations
将
已经存在
- 您不需要显式创建它。
如果您特别需要的是很多:很多关系,那么您实际想做的事就是机会
定义多对多关系的关联表
。