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.

Reply via email to