On Thursday, March 3, 2011 1:19:14 PM UTC-5, Eduardo wrote: > > Thank you all. Editing appadmin will do. I am, however, having a hard > time identifying export_to_csv( ) either in views/appadmin.html or > appadmin.py. While import_from_csv is clearly called from within > appadmin.import_csv, I am unable to identify how export_to_csv is > called there.
The export is done by the csv() function in appadmin.py: http://code.google.com/p/web2py/source/browse/applications/welcome/controllers/appadmin.py#142 That function returns: str(db(query).select()) The db(query).select() is a DAL Rows object, and since it is passed to str(), the __str__ method of the Rows class is applied. You can see the __str__ method of the Rows class in dal.py here: http://code.google.com/p/web2py/source/browse/gluon/dal.py#4850 <http://code.google.com/p/web2py/source/browse/gluon/dal.py#4850As> As you can see, the __str__ method ultimately calls the export_to_csv_file method, which is here: http://code.google.com/p/web2py/source/browse/gluon/dal.py#4947 I suppose you could write your own export_tab_delimited function that works like __str__ but passes delimiter='\t' to export_to_csv_file. Maybe something like this added to appadmin.py: import cStringIO def export_tab_delimited(rows): s = cStringIO.StringIO() rows.export_to_csv_file(s, delimiter='\t') return s.getvalue() And then change the last line of the csv() function to: return export_tab_delimited(db(query).select()) Anthony