我正在尝试使用Django-Tables2在.csv中导出表,到目前为止,我已经完成了以下工作。
tables.py
class ClientTable(ColumnShiftTable):
class Meta:
model = Client
sequence = ('id', 'nome_razao_social', 'cpf', 'cnpj', 'sit_fiscal')
template_name = 'django_tables2/bootstrap.html'
views.py
class ClientsView(ExportMixin, CustomListView):
template_name = 'relatorios/clients/geral.html'
model = Client
table_class = ClientTable
context_object_name = 'all_clients'
permission_codename = 'view_clients'
def get_context_data(self, **kwargs):
context = super(RelatorioClientsView,
self).get_context_data(**kwargs)
table = ClientTable(Client.objects.all())
table.paginate(page=self.request.GET.get('page', 1), per_page=15)
context['table'] = table
RequestConfig(self.request).configure(table)
export_format = self.request.GET.get('_export', None)
if TableExport.is_valid_format(export_format):
exporter = TableExport(export_format, table)
return exporter.response('table.{}'.format(export_format))
return context
template.html
<div class="tabel" style="overflow-x: auto; white-space: nowrap;">
{% load render_table from django_tables2 %}
{% render_table table %}
{% export_url "csv" %}
</div>
但是我收到此错误Invalid block tag on line 56: 'export_url', expected 'endblock'. Did you forget to register or load this tag?
如果我删除了{% export_url "csv" %}
,该错误就会停止出现,但是我没有链接。
答案 0 :(得分:0)
在template.html
中,我添加了{% load django_tables2%}
我通过了SingleTableMixin
作为“ ClientsView”参数。
在ClientTable
中,我添加了export_formats = ['csv', 'xlsx']
这解决了我的问题。