Django使用CBV将数据导出到csv文件

时间:2018-10-09 13:42:13

标签: django export-to-csv

我正在寻找export data从数据库到其他文件格式(.csv,.json,.xls ...)。

这个主意应该是:用户转到一个新模板并可以访问许多下载按钮。当它单击一个时,他以选定的格式下载文件。

我有这个观点:

class Exports(ListView):
    template_name = 'exports.html'
    context_object_name = 'exports'

    def export_categories_csv(request):
        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename="categories.csv"'

        writer = csv.writer(response)
        writer.writerow(['id', 'name'])

        categories = Category.objects.all().values_list('id', 'name')
        for category in categories:
            writer.writerow(category)

        return response

    def get_context_data(self, **kwargs):
        self.export_categories_csv()
        return super(HomeView, self).get_context_data(**kwargs)

我的urls.py文件如下:

url(r'^exports$', Exports.as_view(), name='exports'),

以及相关模板:

{% load staticfiles %}
{% load i18n %}

{% block main %}

    <a href="{% url 'exports' %}" class="btn btn-default">Export all categories in CSV</a>

{% endblock main %}

如何创建不同的按钮并在同一页面中显示这些按钮?以及如何在同一个类中的每个按钮和每个函数之间建立链接。

到目前为止,问题是:

  

导出缺少查询集。定义Exports.model,Exports.queryset,   或覆盖Exports.get_queryset()。

0 个答案:

没有答案