Anthony, Excellent!!! That works perfectly, no need to mess up with sqlhtml.py.
Massimo, Thanks for insight. PT On Thursday, December 12, 2013 8:45:35 AM UTC-6, Anthony wrote: > > How about doing: > > SQLFORM.grid(..., formargs=dict(fields=[f.name for f in fields])) > > Anthony > > On Thursday, December 12, 2013 9:04:21 AM UTC-5, P T wrote: >> >> I rigged the sqlhtml.py, so that I can rearrange the fields in the form >> as well. The following worked for me, but not sure if it has any side >> effects: >> >> In sqlhtml.py, after the line >> create_form = update_form = view_form = search_form = None >> >> insert >> >> fieldnames = [f.name for f in fields] >> >> and include fieldnames in the following calls: >> >> create_form = SQLFORM(table, fields=fieldnames, **sqlformargs) >> >> view_form = SQLFORM(table, record, fields=fieldnames,**sqlformargs) >> >> update_form = SQLFORM(table, record, fields=fieldnames, **sqlformargs) >> >> >> I think, it would be nice to see the fields in the same arrangement both >> in grid and forms. This will also filter fields in the form. Currently, >> forms show all fields from the table. >> >> Thanks, >> PT >> >> On Wednesday, December 11, 2013 8:34:36 PM UTC-6, Massimo Di Pierro wrote: >>> >>> Now I understand better. The order of the parameters in forms is >>> specified in the table definition. You can rearrange in the grid view but >>> not in form. >>> I assume the order is fixed. You should change it in the >>> define_table(..., *fields) >>> >>> >>> On Tuesday, 10 December 2013 00:09:49 UTC-6, P T wrote: >>>> >>>> I think, the problem is due to the following calls in gluon.sqlhtml.py >>>> (lines 2050, 2072, and 2093), which does not include the optional >>>> parameter "fields" >>>> >>>> create_form = SQLFORM(table, **sqlformargs) >>>> view_form = SQLFORM(table, record, **sqlformargs) >>>> update_form = SQLFORM(table, record, **sqlformargs) >>>> >>>> So, I tried something like >>>> >>>> update_form = SQLFORM(table, record, fields=fields, >>>> **sqlformargs) >>>> >>>> and this generates the ticket >>>> >>>> <type 'exceptions.AttributeError'> 'Field' object has no attribute >>>> 'find' >>>> >>>> Version >>>> web2py™ Version 2.8.2-stable+timestamp.2013.11.28.13.54.07 >>>> Python Python 2.7.5: C:\Python27\python.exe (prefix: C:\Python27) >>>> Traceback (most recent call last): >>>> File "C:\web2py-src\gluon\restricted.py", line 217, in restricted >>>> exec ccode in environment >>>> File "C:/web2py-src/applications/Test/controllers/default.py", line >>>> 77, in <module> >>>> File "C:\web2py-src\gluon\globals.py", line 372, in <lambda> >>>> self._caller = lambda f: f() >>>> File "C:\web2py-src\gluon\tools.py", line 3239, in f >>>> return action(*a, **b) >>>> File "C:/web2py-src/applications/Test/controllers/default.py", line >>>> 20, in index >>>> grid = SQLFORM.grid(query, fields=fields) >>>> File "C:\web2py-src\gluon\sqlhtml.py", line 2093, in grid >>>> update_form = SQLFORM(table, record, fields=fields, >>>> **sqlformargs) >>>> File "C:\web2py-src\gluon\sqlhtml.py", line 1053, in __init__ >>>> if fieldname.find('.') >= 0: >>>> AttributeError: 'Field' object has no attribute 'find' >>>> >>>> There must be something wrong in how I included the fields param here. >>>> >>>> >>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.