I just got it! the problem is in definition of headers, when headers=None
this works well.

I am going to patch for this.

2010/12/9 Bruno Rocha <[email protected]>

> Note that when I do:
>
> print sqlrows.colnames in sqlhtml.py I get:
>
> ['task.id', 'task.title', 'task.story', 'task.type', 'task.body',
> 'task.priority', 'task.assigned_to', 'task.estimated_hours',
> 'task.spent_hours', 'task.status', 'task.created_on', 'task.created_by',
> 'task.updated_on', 'task.updated_by', 'task.*new_column*']
>
> 2010/12/9 Bruno Rocha <[email protected]>
>
> This:
>>
>> <code>
>> class ExtraField:
>>     def new_column(self):
>>         if self.task.id==1:
>>             return A('some_action_link',
>>                      _href=URL(f='default',
>>                                args=[self.task.id]))
>>         else:
>>             return A('great thing', _href='http://www.web2py.com')
>>
>>
>> def test():
>>     rows=db(db.task).select()
>>     rows.colnames.append('task.new_column')
>>     rows.setvirtualfields(task=ExtraField())
>>     table=SQLTABLE(rows)
>>     return dict(table=table)
>>
>> </code>
>>
>> Is not working raising this error:
>>
>> Traceback (most recent call last):
>>   File "/Users/brunomac/web2py/gluon/restricted.py", line 188, in restricted
>>
>>
>>     exec ccode in environment
>>   File "/Users/brunomac/web2py/applications/satlite/controllers/teste.py" 
>> <http://127.0.0.1:8000/admin/default/edit/satlite/controllers/teste.py>, 
>> line 71, in <module>
>>
>>
>>   File "/Users/brunomac/web2py/gluon/globals.py", line 96, in <lambda>
>>
>>
>>     self._caller = lambda f: f()
>>
>>
>>   File "/Users/brunomac/web2py/applications/satlite/controllers/teste.py" 
>> <http://127.0.0.1:8000/admin/default/edit/satlite/controllers/teste.py>, 
>> line 20, in test
>>
>>
>>     table=SQLTABLE(rows)
>>   File "/Users/brunomac/web2py/gluon/sqlhtml.py", line 1241, in __init__
>>
>>
>>   File "/Users/brunomac/web2py/gluon/sql.py", line 3787, in __str__
>>
>>
>>     self.export_to_csv_file(s)
>>   File "/Users/brunomac/web2py/gluon/sql.py", line 3771, in 
>> export_to_csv_file
>>
>>
>>     field = self.db[t][f]
>>
>>
>>   File "/Users/brunomac/web2py/gluon/sql.py", line 1668, in __getitem__
>>
>>
>>     return dict.__getitem__(self, str(key))
>>
>> KeyError: 'new_column'
>>
>>
>>
>>
>> 2010/12/9 Ivan Matveev <[email protected]>
>>
>> You can put anything in SQLTABLE by modifying Rows object with
>>> rows.setvirtualfields.
>>> See this post
>>>
>>> http://groups.google.com/group/web2py/browse_thread/thread/826a37f56c26d689
>>>
>>
>>
>>
>> --
>>
>> Bruno Rocha
>> http://about.me/rochacbruno/bio
>>
>
>
>
> --
>
> Bruno Rocha
> http://about.me/rochacbruno/bio
>



-- 

Bruno Rocha
http://about.me/rochacbruno/bio

Reply via email to