okay, now this works :-) Thanks! Is inside "form.accepts" the code thats "acts" on the form data, and that was the reason why it didn't work?
Another problem: How can I add a "db requirement" so that you can enter a value for product.ean only if you want to, but when there is one, it has to be unique (so that an empty field is not caught by IS_NOT_IN_DB() if there are 2 products with no ean entered? On 27 Jul., 11:18, mdipierro <mdipie...@cs.depaul.edu> wrote: > 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