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.