Thanks for the help. Here is the complete function defined in the controller:
------ code for controller starts ------ @auth.requires_login() def new_sale(): response.title="New sale" if not session.cart: session.cart={} if not session.cart_qty: session.cart_qty={} if not session.qty_forms: session.qty_forms={} form = FORM(INPUT(_name="search", requires=IS_NOT_EMPTY()), INPUT(_type="submit", _value="Search"),_name="form_search") if form.accepts(request.vars,session,formname="form_search"): rows=db(db.products.barcode==request.vars.search).select() if len(rows) == 1: product = rows.first() if product.id in session.cart: session.cart_qty[product.id]+=1 session.qty_forms[product.id][0] ['_value']=session.cart_qty[product.id] else: session.cart[product.id]=product session.cart_qty[product.id]=1 qty_form=FORM(INPUT( _name="qty", _value=1), INPUT(_type="hidden", _name="prod_id",_value=product.id), INPUT(_type="submit",_value=T("Update"),_style="display:none;"), _name="formqty"+str(product.id)) if qty_form.accepts(request.vars, session,formname="formqty"+str(product.id)): session.cart_qty[request.vars.prod_id]+=1 temp_qty = session.cart_qty[request.vars.prod_id] session.qty_forms[request.vars.prod_id][0]['_value'] = temp_qty session.qty_forms[product.id]=qty_form return dict(form=form) ------ code for controller ends ------ Now this is the view code: ------ code for view starts ------ {{extend 'layout.html'}} <h1>Venta</h1> <div id="buscar_codigo"> {{=form}} </div> {{if len(session.cart)>0:}} <table class="data_table"> <thead> <tr> <th scope="col" class="a10pc">Cantidad</th> <th scope="col" class="a10pc">Codigo</th> <th scope="col" class="a50pc">Producto</th> <th scope="col" class="a10pc">Precio</th> <th scope="col" class="a10pc">Sub-Total</th> <th scope="col" class="a10pc">Quitar</th> </tr> </thead> <tbody> {{i=0}} {{total=0}} {{for id, product in session.cart.iteritems():}} {{if i%2==1:}} <tr class="impar"> {{else:}} <tr> {{pass}} <!--So I basically read all the products in the cart (a dictionary) Each product must have a quantity form so the user can modify the amount of products sold.--> <td>{{=session.qty_forms[id]}}</td> <td>{{=session.cart[id].codigo_de_barras}}</td> <td>{{=session.cart[id].nombre}}</td> <td>{{=session.cart[id].precio_de_venta}}</td> <td>{{=session.cart[id].precio_de_venta*session.cart_qty[id]}}</td> <td></td> </tr> {{i+=1}} {{total +=session.cart[id].precio_de_venta*session.cart_qty[id]}} {{pass}} <tfoot> <tr class="total_row"> <th align="right" colspan="3" class="total"><strong>Total</ strong></td> <th colspan="3" class="total"><strong>{{=total}}</strong></ td> </tr> </tfoot> </tbody> </table> {{pass}} ------ code for view ends ------ Hopefully this time indentation wont break. Any way as I already said the forms display correctly is just that the accept code doesn't. And my forms all have different names. Hope some one can give a hand. Thanks.