This: def edit(): form = SQLFORM(db.product, request.args(0)) return dict(form=form)
should be def edit(): form = SQLFORM(db.product, request.args(0)) if form.accepts(request.vars,session): pass return dict(form=form) or def edit(): form = crud.update(db.product, request.args(0)) return dict(form=form) and this: db.product.ean.requires = IS_NOT_EMPTY(), IS_NOT_IN_DB(db,'product.ean') can be simplified into db.product.ean.requires = IS_NOT_IN_DB(db,'product.ean') since IS_NOT_IN_DB now checks whether value is empty On Jul 26, 1:09 pm, Florian <flokl...@gmail.com> wrote: > Hi, > > I'm trying web2py and want to create a "product" database and forms. > > -displaying all products > -displaying one (in detail) and > -creating a new product > > works, but i have problems with the "edit/delete" part. It will show > the filled-out form when calling e.g. product/edit/2 , but submitting > the form won't update the record. > What am I doing wrong? > > models/db.py looks like this: > ------------------- > db.define_table('product', > Field('added_at', 'datetime', default=request.now, readable=False, > writable=False), > Field('title', 'string'), > Field('ean', 'integer'), > Field('brand', 'string'), > Field('mpn', 'string'), > Field('image', 'upload'), > Field('description', 'text'), > Field('cost_price', 'double'), > Field('sell_price', 'double'), > Field('asin', 'string')) > > db.product.ean.requires = IS_NOT_EMPTY(), IS_NOT_IN_DB(db, > 'product.ean') > db.product.title.requires = IS_NOT_EMPTY() > ------------------- > > controllers/product.py has this function: > ------------------- > def edit(): > form = SQLFORM(db.product, request.args(0)) > return dict(form=form) > ------------------- > > and views/product/edit.html: > ------------------- > {{extend 'layout.html'}} > <h1>{{=T("Edit product")}}</h1> > {{=form}} > ------------------- > > Hope you can help me, > > Florian