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'):".
>>>>>>
>>>>>
>>>>>
>>>>
>>