There is a shortcoming in the smartgrid code where if an argument is a
dictionary, it expects each of the keys to be table names -- it then
attempts to extract the item matching the current table name and pass that
as the relevant argument to SQLFORM.grid. Of course, this approach breaks
down when the argument itself is intended to be a dictionary. The only
workaround is to provide a dictionary that includes a copy of your
export_classes dict for every table you want to include in smartgrid:
export_classes = dict(json=False, html=False, tsv=False, xml=False,
csv_with_hidden_cols=False, tsv_with_hidden_cols=False
)
grid = SQLFORM.smartgrid(..., exportclasses=dict(table1=export_classes,
table2=export_classes, ...))
Or you could do something like this:
class SingleItemDict(dict):
def __init__(self, value):
self.value = value
def __getitem__(self, key):
return self.value
def __contains__(self, key):
return True
export_classes = SingleItemDict(dict(json=False, html=False, tsv=False, xml=
False,
csv_with_hidden_cols=False, tsv_with_hidden_cols=False))
grid = SQLFORM.smartgrid(..., exportclasses=export_classes)
Anthony
On Tuesday, November 14, 2017 at 12:57:25 AM UTC-5, Peter wrote:
>
> I need only csv export method from SQLFORM.smartgrid so I want to disable
> default export methods. Seems to me that
> SQLFORM.smartgrid(exportclasses=dict(json=False)) doesn't work in newer
> versions of web2py (2.14.6).
>
> My code:
>
> export_classes = dict(json=False, html=False,
> tsv=False, xml=False, csv_with_hidden_cols=False,
> tsv_with_hidden_cols=False)
>
> table = SQLFORM.smartgrid(db.tableexample, user_signature=False,
> showbuttontext=False,
> links=links, linked_tables=[],
> editable = True, deletable = True,
> exportclasses=export_classes)
>
>
>
>
> Am I wrong?
>
> In version 2.10.3 this works just fine.
>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.