在sqlalchemy模型

时间:2015-05-18 15:48:15

标签: flask sqlalchemy flask-sqlalchemy

我有一个SQLAlchemy模型,其字段为lastModifiedById。我希望它使用当前登录用户的is自动填充。这可以在flask.session['personId']中找到。

以下内容给出了out of request context错误:

lastModifiedById = db.Column(db.Integer, db.ForeignKey("person.id"), default=session['personId'], onupdate=session['personId')

如果我用以下内容替换上述内容:

def get_session_person_id(): 
    if has_request_context():
        return session['personId']
     else
        return None


lastModifiedById = db.Column(db.Integer, db.ForeignKey("person.id"), default=get_session_person_id(), onupdate=get_session_person_id())

似乎应用程序启动时多次调用get_session_person_id方法,但是当我更新SQLAlchemy模型时,它不会被调用。

有关正在发生的事情的任何想法?

1 个答案:

答案 0 :(得分:0)

答案很简单:

 lastModifiedById = db.Column(db.Integer, db.ForeignKey("person.id"), default=get_session_person_id, onupdate=get_session_person_id)

注意如何从函数名中删除括号。