def save_drift(drift_form, current_gift): with db.auto_commit(): drift = Drift() # drift.message = drift_form.message.data drift_form.populate_obj( drift) # 把form的所有字段拷贝到模型中,populate_obj,字段名称需要相同 drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gifter_id = current_gift.user.id # 获取书籍信息 # book = current_gift.book.first # drift.book_title = book['title'] # 字典和对象不一样,需要用[]访问 book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image.get('large', '') drift.isbn = book.isbn current_user.beans -= 1 # 理论上不会是负值,但也可以加上判断 db.session.add(drift)
def sava_drift(drift_form, current_gift): """ 把某一次表单填写的交易保存为 Drift 类,写入数据库中 :param drift_form: :param current_gift: :return: """ with db.auto_commit(): drift = Drift() drift_form.populate_obj(drift) # 确保名称相同,表单信息可以进行复制 drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gifter_id = current_gift.user.id book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn current_user.beans -= current_app.config['BEANS_EVERY_DRIFT'] db.session.add(drift)
def save_drift(drift_form, current_gift): try: drift = Drift() # drift.message = drift_form.mesage.data drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_id = current_gift.user.id drift.gifter_nickname = current_gift.user.nickname book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn current_user.beans -= 1 db.session.add(drift) db.session.commit() except Exception as e: db.session.rollback() raise e
def save_drift(drift_form, current_gift): with db.auto_commit(): drift = Drift() # 使用poplutate_obj,如果模型中字段的名称和form中字段名称相同 # 就可以将form中的模型字段拷贝到drift模型中 drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gifter_id = current_gift.user.id # book原本是字典,需要通过字典的方式来访问 # 为了保证调用的统一性将current_gift获取到的数据 # 用BookViewModel构建成一个对象 book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn current_user.beans -= 1 db.session.add(drift)
def save_drift(drift_form, current_gift): with db.auto_commit(): drift = Drift() # drift.message = drift_form.message.data drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_id = current_gift.user.id drift.gifter_nickname = current_gift.user.nickname book = BookViewModel(current_gift.book) drift.isbn = book.isbn drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image current_user.beans -= 1 db.session.add(drift)
def save_drift(drift_form, my_gift): with db.auto_commit(): drift = Drift() drift_form.populate_obj(drift) drift.gift_id = my_gift.id drift.requester_id = current_user.id drift.recipient_name = current_user.nickname drift.gifter_nickname = my_gift.user.nickname drift.gifter_id = my_gift.user.id yushu_book = Yushubook() yushu_book.search_by_isbn(isbn=my_gift.isbn) book = BookViewModel.collection(data=yushu_book)['books'][0] drift.book_author = book['author'] drift.book_img = book['image'] drift.book_title = book['title'] drift.pending = PendingStatus.waiting db.session.add(drift)
def save_drift(drift_form, current_gift): with db.auto_commit(): drift = Drift() # drift.message = drift_form.message.data drift_form.populate_obj(drift) # 确定鱼漂 drift.gift_id = current_gift.id # 索要者信息 drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname # 赠送者信息 drift.gifter_id = current_gift.user.id drift.gifter_nickname = current_gift.user.nickname # 书籍信息 book = BookViewModel(current_gift.book) drift.isbn = book.isbn drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image # # 书籍信息的另一种写法 # # 此时的book是一个字典 # book = current_gift.book.first # # # 用字典取值的方式取值 # drift.isbn = book['isbn'] # drift.book_title = book['title'] # drift.book_author = book['author'] # drift.book_img = book['image'] # 鱼豆消耗1个 current_user.beans -= 1 db.session.add(drift)
def save_drift(drift_form, current_gift): # 保存到drift, 用户鱼豆-1 with db.auto_commit(): drift = Drift() drift_form.populate_obj(drift) # 把drift_form中的元素都添加到drift对应的属性中,名字需相同 book = BookViewModel(current_gift.book) drift.isbn = book.isbn drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_id = current_gift.user.id drift.gift_id = current_gift.id drift.gifter_nickname = current_gift.user.nickname # drift.pending = PendingStatus.Witing # pending默认是1,不用再进行赋值 current_user.beans -= 1 db.session.add(drift)
def save_drift(drift_form, current_gift): # 保存鱼漂到数据库中 with db.auto_commit(): drift = Drift() # 使用populate_obj()是将目标对象drift对应的模型字段全部导入 # 前提是要写入到数据库的字段必须和原模型字段相同 drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gifter_id = current_gift.user.id book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn current_user.beans -= 1 db.session.add(drift)
def save_drift(drift_form, current_gift): if current_user.beans < 1: # TODO 自定义异常 raise Exception() with db.auto_commit(): drift = Drift() drift_form.populate_obj(drift) drift.gift_id = current_gift.id drift.requester_id = current_user.id drift.requester_nickname = current_user.nickname drift.gifter_nickname = current_gift.user.nickname drift.gifter_id = current_gift.user.id book = BookViewModel(current_gift.book) drift.book_title = book.title drift.book_author = book.author drift.book_img = book.image drift.isbn = book.isbn db.session.add(drift) current_user.beans -= 1