我在基于cookiecutter-flask的设置中使用带有蓝图的Flask-SQLAlchemy,它可以解决大多数循环导入问题。
但是,我的情况如下。我有两个在不同的Python模块中声明的相关模型/表(实际上,它们之间是否存在数据库关系并不重要)。我想用查询另一个模型的自定义方法扩展这两个模型。最小示例:
typing.Dict[int, int]
和
# employee/models.py
class Employee(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100))
company_id = db.Column(db.ForeignKey('company.id'))
company = db.relationship("Company", backref="employees") # Referencing "Company" as str avoids circular import
def job_opportunities(self):
# Complicated query based on this employee's data
return Company.query.filter(...).all()
两个文件都有一个方法,需要导入另一个模块中定义的模型。我想将两个模型放在不同的模块中。什么是解决此问题的干净模式?