The error is in your code

for label in form.elements('label'):
    label.components = label.components[-2]

because the delete row an a empty label.

for label in form.elements('label'):
    if len(label.components)>=2:
        label.components = label.components[-2]

anyway, what is that line for?

On Jul 25, 7:14 am, annet <[email protected]> wrote:
> To get rid of the colon in the forms I do the following:
>
> form=SQLFORM(...)
> for label in form.elements('label'):
>     label.components = label.components[-2]
>
> This works for:
>
> form=auth()
> form.SQLFORM(...)
> form=SQLFORM.factory(...)
>
> However, in case of form=crud.update(...) I get the following error
> ticket
>
> Traceback (most recent call last):
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
> restricted.py", line 188, in restricted
>     exec ccode in environment
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/applications/
> init/controllers/admincms.py", line 524, in <module>
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
> globals.py", line 96, in <lambda>
>     self._caller = lambda f: f()
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/gluon/
> tools.py", line 2298, in f
>     return action(*a, **b)
>   File "/Library/Python/2.5/site-packages/web2py_1.87.3/applications/
> init/controllers/admincms.py", line 380, in logo
>     label.components = label.components[-2]
> IndexError: list index out of range
>
> This error somehow has something to do with deletable being set to
> True or False i.e this works:
>
> form=crud.update(table=db.tagline,...,deletable=False)
> for label in form.elements('label'):
>     label.components = label.components[-2]
>
> ... and this doesn't work:
>
> form=crud.update(table=db.tagline,...,deletable=True)
> for label in form.elements('label'):
>     label.components = label.components[-2]
>
> Is there a solutions for this problem?
>
> Kind regards,
>
> Annet

Reply via email to