Did you register and log in while testing your app? On Monday, November 12, 2012 11:58:11 PM UTC-5, Ton Dong wrote: > > Hi all, > > I am a newbie in web design. I followed the instructions in the video > "Build an online store with web2py" at http://vimeo.com/20768689 > I don't know why I can not add any items to cart. Please help me to show > where I was wrong. Thank you a lot. > > ~ Ton Dong > The code: > > - Model: hmw.py > # coding: utf8 > db.define_table( > 'product', > Field('nameproduct', 'string',notnull=True,unique=True, length=30), > Field('price', 'double'), > Field('desciption', 'text'), > Field('image','upload'), > Field('sortable','integer'), > auth.signature, > format = '%(nameproduct)s', > singular = 'product', > plural = 'products', > ) > db.define_table( > 'sale', > Field('invoice'), > Field('creditcard'), > Field('buyer',db.auth_user), > Field('product',db.product), > Field('quantity','integer'), > Field('price', 'double'), > Field('shipped', 'boolean', default=False), > auth.signature, > ) > > - Conntroller: > def index(): > session.cart = session.cart > products = db(db.product).select(orderby=db.product.sortable) > return locals() > > def user(): > return dict(form=auth()) > > def download(): > return response.download(request,db) > def call(): > session.forget() > return service() > @auth.requires_login() > def cart(): > return dict(cart=session.cart) > > @auth.requires_login() > def pay(): > import uuid > invoice = str(uuid.uuid4()) > total = sum(db.product(id).price*qty for id, qty in > session.cart.items()) > form = SQLFORM.factory(Field('creditcard',default='000000000000000'), > Field('expiration', default='12/2015'), > Field('cvv', default='111'), > > Field('total','double',default=total,writable=False)) > if form.accepts(request,session): > if process(form.vars.creditcard, form.vars.expiration, total, > form.vars.cvv,0.0,'invoice'): > for key, value in sesssion.cart.items(): > db.sale.insert(invoice=invoice, > buyer=auth.user.id, > product=key, > quantity = value, > price = db.product(key).price, > creditcard = form.vars.creditcard) > session.cart.clear() > session.flash = 'Thanks for your order' > redirect(URL('index')) > return dict(cart=session.cart, form=form) > > def cart_callback(): > id = int(request.vars.id) > if request.vars.action == 'add': > session.cart[id] = int(session.cart.get(id,0))+1 > if request.vars.action == 'sub': > session.cart[id] = max(0,session.cart.get(id,0)-1) > return str(session.cart[id]) > > - index.html > > {{extend 'layout.html'}} > {{for p in products:}} > <div> > <h5> {{=p.nameproduct}} - ${{=p.price}} </h5> > <br> > <img width="200px" > src="{{=URL > <http://127.0.0.1:8000/examples/global/vars/URL>('download', args=p.image)}}" > /> > <br> > <span id='item{{=p.id}}'>{{=session > <http://127.0.0.1:8000/examples/global/vars/session>.cart.get(p.id,0)}}</span> > in cart > <button onclick='ajax('{{=URL > <http://127.0.0.1:8000/examples/global/vars/URL>('cart_callback', > vars=dict(id=p.id,action='add'))}}',[],'item{{=p.id}}')'>add </button> > > </div> > {{pass}} > > > > >
--