from app.web import web
from flask_login import login_required,current_user
from flask import current_app
from app.models.gift import Gift
from models.base import db
@web.route('/gifts/book/<isbn>')
@login_required
def save_to_gifts(isbn):
if current_user.can_save_to_list(isbn):
try:
gift = Gift()
gift.isbn=isbn
#获取当前用户的id
gift.uid=current_user.id
current_user.beans += current_app.config["BEANS_UPLOAD_ONE_BOOK"] #这里调用current_user 为啥不用传入add 神奇,估计是自带add 语句
db.session.add(gift)
db.session.commit() #当执行到这步的时候,数据才会插入到数据库
except Exception as e:
#事务回滚
db.session.rollback() #当commit() 失败后要执行回滚,不然下一个操作也会失败
raise e
else:
flash("这本书已添加至您的赠送清单或已存在你的心愿清单")