Hi Massimo, looks great. But I got: web2py™ Version 1.97.1 (2011-06-26 19:25:44) Python Python 2.5.4: C:\Web2Py\web2py_win\web2py\web2py.exe TRACEBACK
1. 2. 3. 4. 5. 6. 7. 8. 9. Traceback (most recent call last): File "gluon/restricted.py", line 192, in restricted File "C:/Web2Py/web2py_win/web2py/applications/test16rechte/controllers/default.py" <http://127.0.0.1:8000/admin/default/edit/test16rechte/controllers/default.py>, line 88, in <module> File "gluon/globals.py", line 137, in <lambda> File "C:/Web2Py/web2py_win/web2py/applications/test16rechte/controllers/default.py" <http://127.0.0.1:8000/admin/default/edit/test16rechte/controllers/default.py>, line 84, in newperson File "gluon/dal.py", line 4255, in __getattr__ File "gluon/dal.py", line 4249, in __getitem__ KeyError: 'color' ERROR SNAPSHOT [image: help] <type 'exceptions.KeyError'>('color') 2011/6/27 Massimo Di Pierro <[email protected]> > yes > > db.person.color.requires=IS_IN_DB(db(db.color.gr=='A'),db.color.id,'% > (color)s') > form=SQLFORM(db.person) > > On Jun 27, 3:12 pm, Martin Weissenboeck <[email protected]> wrote: > > Hi, > > I need a SQLFORM with a special drop-box with a subset of values. > > > > This is a simplified example, the whole problem is a little bit more > > complex: Let's make two tables: > > > > db.define_table('colors', > > Field('color'), > > Field('gr'), # group > > format='%(color)s', > > ) > > > > db.define_table('person', > > Field('name'), > > Field('color','list:reference colors'), > > ) > > > > I fill the first table: > > > > def newcolors(): > > db.colors.truncate() > > db.colors.bulk_insert([ > > {'color':'yellow', 'gr':'B'}, > > {'color':'green', 'gr':'A'}, > > {'color':'blue', 'gr':'A'}, > > {'color':'red', 'gr':'B'}, > > {'color':'white', 'gr':'B'}, > > {'color':'black', 'gr':'B'}, > > ]) > > > > And now there is the SQLFORM for a new person: > > > > def newperson(): > > form=SQLFORM(db.person) > > return dict(form=form) > > > > The form contains a SELECT/OPTION multiple drop-box for the colors *black > to > > yellow.* > > > > My question: is it possible to have three different forms > > > > - a drop-box which contains only the colors of group A (green, blue) > > - a drop-box which contains only the colors of group B (yellow, red, > > white, black) > > - a drop-box with all color > > > > Something like > > > > form=SQLFORM(db.person, colors_for_select=[1,2]) > > > > Regards, > > Martin >

