首页 > 解决方案 > django export to csv 仅从当前页面导出数据

问题描述

我正在尝试将 django Listview 导出到 csv。我为 ListView 创建了一个视图,它具有自定义 get_queryset() 函数来创建过滤结果。Listview 本身使用分页来显示数据。

对于导出,我创建了一个子类,继承了 Listview,带有自定义 url 和 csv 模板文件。

Listview 和导出过程本身工作得很好,但我没有在 csv 中获得完整的查询集,而只有分页 Listview 的第一页上存在的数据。

有什么建议我缺少什么吗?

标签: djangocsvlistviewexport

解决方案


我建议你制作一个基本的抽象视图,它没有放在 urlpatterns 中,它具有共同的逻辑:

class MyListView(ListView):
    model = Foo

    def get_queryset(...):
        ...

然后为您的 CSV 准备一个具有任何不同功能的文件:

class MyCSVListView(MyListView):
    ...

还有一个供您定期查看:

class MyPaginatedListView(MyListView):
    paginate_by = 100

这样,您应该避免来自其他视图的任何副作用。


推荐阅读