首页 > 解决方案 > 从 ID 访问关系

问题描述

我有以下模型:

class Job(Base):
    __tablename__ = 'jobs'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(250), nullable=True, default=None)

    status_id  = db.Column(db.Integer), db.ForeignKey('statuses.id'), nullable=False)
    status = relationship('Status')

class Status(Base):
    __tablename__ = 'statuses'

    id = db.Column(Integer, primary_key=True)
    name = db.Column(db.String(250))

statuses有以下数据:

ID 姓名
1 积极的
2 暂停
3 待批准
4 结束

我正在尝试做的是从 Job 访问状态对象而不将其添加到数据库中,如下所示:

job = Job()
job.name = "test"
job.status_id = 1

print(job.status.name)  # This fails

我怎样才能做到这一点?

这个想法是我想在不需要时避免加载状态,但让 SQLAlchemy 在需要时为我工作。

标签: pythonpython-3.xsqlalchemy

解决方案


推荐阅读