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("這本書已添加至您的贈送清單或已存在你的心願清單")