Since updating from 2.14.6 to 2.15.2 (and also 2.15.3 released just moments 
ago) I have some problems with the default ExportClasses in SQLFORM.grid.
I am using MSSQL as database.
The grid displays just fine, only the export failed.

I'll spare you the complete traceback and get directly to what I could find 
by implementing my own ExportClass.

At first I got a <type 'exceptions.AttributeError'>, the relevant traceback 
was:

File "C:\Users\riek\PycharmProjects\web2py\gluon\sqlhtml.py", line 3563, in 
represented
    row.append(record._extra[col])

I didn't use any type _extra fields, meaning that the regex check in line 
3562 failed (self.rows.db._adapter.REGEX_TABLE_DOT_FIELD.match(col)).

I then overwrote the "represented"-Function with my own, ignoring this 
check and forcing the else-branch. 

This lead to the following exception: <type 'exceptions.AttributeError'> 
'DAL' object has no attribute '"t_schule"'. So my tables and fields are 
escaped and thus not found.

I tried a solution I found somewhere else, setting entity_quoting=False in 
my DAL-instance, to no avail.

I then searched some more and found this bugfix: 
https://github.com/web2py/web2py/issues/1542
It appears that this fix escapes the tables and fields, no matter 
if entity_quoting is enabled or not.

I could solve my particular problem with an ugly hack, by removing the 
quotes in the represent-function of my ExportClass (line 3565 in 
sqlhtml.py: *(t, f) = col.replace('"','').split('.') * instead of *(t, f) = 
col.split('.')) *
I am wondering though if this is a bug or I am not properly understanding 
how the escaping works.




-- 
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/d/optout.

Reply via email to