Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 扩展django-tables2_Python_Django_Django Tables2 - Fatal编程技术网

Python 扩展django-tables2

Python 扩展django-tables2,python,django,django-tables2,Python,Django,Django Tables2,我是django-tables2的忠实用户,我曾考虑向django表添加一个通用扩展:我希望用户只需单击表附近的某个按钮,就可以将所有表数据导出到excel(使用xlwt)或csv 现在,我已经以一种非通用的方式实现了这一点,这意味着我在模板中包含了一个POST表单和一个按钮,并添加了一个检查,以查看该按钮是否已在填充表的视图中单击。如果单击按钮,则返回xls而不是普通模板。此外,我还实现了一个通用函数,用于获取django-table2表(任何表),并将其转换为xlwt工作表(以便将其放入工作

我是django-tables2的忠实用户,我曾考虑向django表添加一个通用扩展:我希望用户只需单击表附近的某个按钮,就可以将所有表数据导出到excel(使用xlwt)或csv

现在,我已经以一种非通用的方式实现了这一点,这意味着我在模板中包含了一个POST表单和一个按钮,并添加了一个检查,以查看该按钮是否已在填充表的视图中单击。如果单击按钮,则返回xls而不是普通模板。此外,我还实现了一个通用函数,用于获取django-table2表(任何表),并将其转换为xlwt工作表(以便将其放入工作簿)

这很好,但因为我将在所有表中使用此按钮,所以我不想将导出表单和按钮添加到所有包含表的html模板中。另外,我不想将POST检查添加到我的所有视图中!这绝对不是干的:(

理想情况下,我希望有一个类,比如说ExportTable,它将扩展django-tables2的Table类,并可用作替换-当我使用ExportTable作为基类创建表时,按钮和视图将具有导出表所需的组件。据我所知,这是不可能的:(

有人能告诉我应该用哪种方式扩展django-tables2,才能以最简单的方式添加“export”功能吗?这意味着我只能在模板中使用{%render_table%}标记(或该标记的扩展)并且不需要向我的视图中添加检查以查看用户是否单击了导出按钮(当然也不需要添加额外的视图和url路由来处理这个问题)。通用类视图是一种方法吗


我会接受最干练和完整的(我想要一些带注释的源代码)回答:)

我用于将表2数据导出到csv和xls。我在mo中遇到xls问题()但是我相信很快就会出现一个解决方案。

对于任何偶然发现这个问题的人,Django-tables2有一个部分专门介绍如何使用
tablib
包以各种格式导出。(从v1.8.0开始存在)

现在,如果将_export=csv附加到查询字符串,浏览器将 下载包含数据的csv文件。支持的导出格式 它们是:

csv、json、latex、ods、tsv、xls、xlsx、yml


好问题,这是一个棘手的问题,我还没有遇到一个简单的解决方案。这是一个类似于支持表上的通用“操作”的问题。如果您愿意使用
SingleTableView
,您可以在那里添加挂钩,因为您可以访问请求。