我有一个flask应用程序,它的包装使用蓝图彼此分开。 我有3个包,它们之间有多对一的关系。
第一个程序包(蓝图)是身份验证(包含User_Model):
from Billboard.Apps.models import Android_Model
from Billboard.Survey.models import Survey_Model
class User_Model (db.Model, UserMixin):
__tablename__ = user_model
...
advertised_apps = db.relationship ('Android_Model' , backref = 'user_model' , lazy = True)
advertised_surveys = db.relationship ('Survey_Model' , backref = 'user_model' , lazy = True)
第二个程序包具有我的User_Model的外键:
from Billboard.Authentication.models import User_Model
class Survey_Model (db.Model):
__tablename__ = 'survey_model'
...
advertiser_id = db.Column(db.Integer, db.ForeignKey('user_model.id'), nullable=False)
第三个程序包的模型与第二个程序包的模型相同。
当我运行烧瓶应用程序时,出现一些导入错误,我知道它们是这些模型之间的循环导入。
注意:当我删除这些模型之间的这种关系时,我没有出现任何错误,并且项目正常运行。
有什么想法要解决吗?
答案 0 :(得分:1)
您实际上不需要导入模型来声明与它的关系。注意db.relationship
将字符串作为第一个参数,而不是类。