为了账号安全,请及时绑定邮箱和手机立即绑定

sqlalchemy的报错: is already attached to session '1' (this is '2')

sqlalchemy的报错: is already attached to session '1' (this is '2')

繁星点点滴滴 2019-02-21 06:19:33
新手学习时,遇到一个问题,GG查了下,看得不是很明白,因此这里请教一下。 要实现的:用户列表有一个「禁言」操作,点击后更新该用户的禁言字段的布尔值。 「禁言」操作是通过视图函数实现的: @app.route('/member/status-false/<int:user_id>') @login_required def status_false(user_id): from models import Member user = Member.query.filter_by(id=user_id).first() user.status = '0' #禁用用户 db.session.add(user) db.session.commit() return redirect(url_for('member')) 运行后,点击「禁言」Flask报错: sqlalchemy.exc.InvalidRequestError: Object '' is already attached to session '1' (this is '2') 报错的问题大致理解是会话绑定对象乱掉了,但是不知道怎么修改上面的代码使得目的可以实现。
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我昨天晚上继续查了一些资料,解决方案如下:

一旦视图函数内涉及db.session的操纵,在函数内进行 from models import db

即正常。

查看完整回答
反对 回复 2019-03-01
?
慕村225694

TA贡献1880条经验 获得超4个赞

1.去掉 db.session.add(user) 试一下
2.将 import 引入 放在文件头部

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 1569 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信