查询相关模型时,避免在Flask / SQLAlchemy中循环导入

时间:2019-05-04 20:04:35

标签: python flask flask-sqlalchemy

我在基于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()

两个文件都有一个方法,需要导入另一个模块中定义的模型。我想将两个模型放在不同的模块中。什么是解决此问题的干净模式?

0 个答案:

没有答案