Richard, If you have time, what happens if you substitute form[1] for form.create_form[0] ?
Thanks, Cliff Kachinske On Nov 10, 4:10 pm, Anthony <[email protected]> wrote: > My mistake -- looks like it always has a .create_form, but set to None in > other cases. But in that case: > > if form.create_form: > > should work, though I think you said that didn't work -- what happened when > you tried that? > > Anthony > > > > > > > > On Thursday, November 10, 2011 4:04:00 PM UTC-5, Richard wrote: > > > Ok but it's not seem to work... I get this error trace back : > > > 1. > > 2. > > 3. > > 4. > > 5. > > 6. > > 7. > > 8. > > 9. > > 10. > > > Traceback (most recent call last): > > > File "/web2py/gluon/restricted.py", line 194, in restricted > > > exec ccode in environment > > > File "/web2py/applications/sgddms/controllers/test.py", line 4437, in > > <module> > > > File "/web2py/gluon/globals.py", line 149, in <lambda> > > > self._caller = lambda f: f() > > > File "/web2py/applications/sgddms/controllers/test.py", line 4396, in > > test_sqlformgrid > > > for i in range(0,len(form.create_form[0])): > > TypeError: 'NoneType' object is unsubscriptable > > > Any idea? > > > It really the first time I play with SQLFORM.grid and it not documented > > yet so I may ask kind of trivial question... Also I a bit under pressure. > > > I really appreciate your help. > > > Richard > > > On Thu, Nov 10, 2011 at 3:57 PM, Anthony <[email protected]> wrote: > > >> I'd go with the second option -- more fool proof. > > >> On Thursday, November 10, 2011 3:11:11 PM UTC-5, Richard wrote: > > >>> Ok so this : > > >>> "if 'new' in request.args and form.create_form:" > > >>> or shorter : > > >>> "if hasattr(form, 'create_form'):" > > >>> ? > > >>> Thank you. > > >>> Richard > > >>> On Thu, Nov 10, 2011 at 2:58 PM, Anthony <[email protected]> wrote: > > >>>> If you have "if 'new' in request.args:' you should not also need "if > >>>> form.create_form" (even if you did, you could simply put them in the same > >>>> "if" statement with an "and"). Alternatively, use "if hasattr(form, > >>>> 'create_form'):" -- all by itself. > > >>>> Anthony > > >>>> On Thursday, November 10, 2011 2:48:49 PM UTC-5, Richard wrote: > > >>>>> Here a working piece of code : > > >>>>> def test_sqlformgrid(): > >>>>> form = SQLFORM.grid(db.TABLE, ui='jquery-ui', > >>>>> editable=auth.has_membership('****reviewer'), > >>>>> deletable=auth.has_membership(****'reviewer'), formstyle = 'divs') > >>>>> if 'new' in request.args: > >>>>> if form.create_form > >>>>> for i in range(0,len(form.create_form[**0**])): > >>>>> if len(form.create_form[0][i][2][****0]) > 0: > >>>>> > >>>>> form.create_form[0][i][0].**appe**nd(SPAN((helpicon(), > >>>>> SPAN(form.create_form[0][i][2]****[0])),_class='tooltip')) > >>>>> del(form.create_form[0][i][2]) > >>>>> return dict(form=form) > > >>>>> Off course the for i in range... Is specific to my need but it the way > >>>>> to manipulate the generated html form before it goes in user hand... > > >>>>> :) > > >>>>> Richard > > >>>>> On Thu, Nov 10, 2011 at 2:44 PM, Richard Vézina > >>>>> <[email protected]>wrote: > > >>>>>> It was working "if form.create_form:"... > > >>>>>> I thought that grid use form variable doesn't matter if the > >>>>>> SQLFORM.grid wasn't in a form variable at all... > > >>>>>> And my bad because I show form = crud... But it was not my > >>>>>> SQLFORM.grid... Arrg. > > >>>>>> Sorry about that... > > >>>>>> Richard > > >>>>>> On Thu, Nov 10, 2011 at 1:26 PM, Anthony <[email protected]> wrote: > > >>>>>>> On Thursday, November 10, 2011 12:42:49 PM UTC-5, Richard wrote: > > >>>>>>>> "if 'new' in request.args:" works (allow to load the grid) but the > >>>>>>>> "if form.create_form:" not work alone or in conjunction with the > >>>>>>>> former > > >>>>>>> Yeah, looks like it would have to be something like "if > >>>>>>> hasattr(form, 'create_form'):".

