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