在SQLAlchemy模型中查询数据库

时间:2018-10-17 01:58:49

标签: python sqlalchemy

我有一个看起来像这样的SQLAlchemy模型:

class Guest(db.Model):
    name = db.Column(db.String)

    current_status_id = db.Column(db.Integer, db.ForeignKey('approval_status.id'))
    current_status = db.relationship('ApprovalStatus')

我想要一个这样的方法:

    def reset_status(self):
        awaiting_response = db.session.query(Approvalstatus).get(1)
        self.current_status = awaiting_response

出于某种原因,从模型内部进行查询对我来说似乎不合适。但是,该逻辑似乎属于Guest类。

当前,我有一个客户服务,看起来像这样:

def reset_guest_approval(guest):
        awaiting_response = db.session.query(Approvalstatus).get(1)
        guest.current_status = awaiting_response

如果可能,我想将逻辑合并到类中。最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

在类似的情况下,我使用object_session在类函数中进行查询。

class Guest(db.Model):
    name = db.Column(db.String)

    current_status_id = db.Column(db.Integer, db.ForeignKey('approval_status.id'))
    current_status = db.relationship('ApprovalStatus')

    def reset_status(self):
        awaiting_response = object_session(self).query(Approvalstatus).get(1)
        self.current_status = awaiting_response