如何使用控制器功能中的新计算值更新数据库值

时间:2019-04-15 19:12:15

标签: python web2py

我有一个售出商品的数据库,我正在通过从当前可用数量中减去购买的数量来更新商品的数量。如何用当前值和购买值之间的差值替换旧值?

在下面的控制器中,我有一个itemCount for循环,该循环试图捕获选定的项目及其数量,从数据库中提取相似的项目,并从数据库中减去其指定的数量(session.value)数量值,然后更新数据库带有新值的“数量”列,该新值是“数量”和“会话”值之间的差异

控制器

def buy():
    if not session.cart:
        session.flash = 'Add something to shopping cart'
        redirect(URL('index'))
    invoice = session.invoiceNo
    total = sum(db.product(id).price*qty for id,qty in session.cart.items())
    for session.key, session.value in session.cart.items():
        db.sales.insert(invoice=invoice,buyer=auth.user.id,product = session.key,quantity = session.value,price=db.product(session.key).price)
        itemCount=db(db.product.name==session.key).select(db.product.ALL)
        for item in itemCount:
            quantity=item.Quantity-session.value
            item.update_record(Quantity=quantity)
    session.cart.clear()
    session.flash = 'Sale Complete'
    redirect(URL('invoice',args=invoice))
    return dict(cart=session.cart,form=form,total=total)

我希望itemCount for loop可以进行计算,并在进行销售时用新值更新“数量”列。当我查看数据库表中的购买物料时,我希望找到一个新的“数量”值。

0 个答案:

没有答案