新手学习时,遇到一个问题,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')
报错的问题大致理解是会话绑定对象乱掉了,但是不知道怎么修改上面的代码使得目的可以实现。
어젯밤에 계속해서 몇 가지 정보를 확인했는데 해결 방법은 다음과 같습니다.
db.session 조작이 뷰 함수에 포함되면 함수 내에서 from models import db
를 수행합니다.그건 정상이에요.
1. db.session.add(user)를 제거하고 사용해 보세요
2. 가져오기 소개를 파일 상단에 배치하세요
결론:
으아악이유:
으아악