我有一个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模型时,它不会被调用。
有关正在发生的事情的任何想法?
答案 0 :(得分:0)
答案很简单:
lastModifiedById = db.Column(db.Integer, db.ForeignKey("person.id"), default=get_session_person_id, onupdate=get_session_person_id)
注意如何从函数名中删除括号。