Как обновить значение базы данных новым вычисленным значением из функции контроллера - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть база проданных товаров, я обновляю количество товара, вычитая сумму, купленную из текущего доступного количества. Как заменить старое значение на разницу между текущим значением и приобретенным значением?

В контроллере ниже у меня есть цикл itemCount for, который пытается захватить выбранный элемент и его количество, извлечь из базы данных аналогичный элемент и вычесть его указанное количество (session.value) из базы данных. Значение количества, затем обновить базу данных. Столбец Количество с новым значением, которое представляет собой разницу между количеством и значением сеанса. Значение

CONTROLLER

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 выполнит вычисления и обновит столбец Количество новым значением, когда будет сделана продажа. Я ожидаю найти новое количество, когда посмотрю на купленные предметы в таблице базы данных.

...