使用分页模块的Django-Rest-Framework csv模块

时间:2015-11-03 22:11:37

标签: python django pagination django-rest-framework export-to-csv

您好我正在使用django-rest-framework-csv模块,我已按照说明使用此代码创建了一个Paginated渲染器:

from rest_framework_csv.renderers import CSVRenderer

class PaginatedCSVRenderer (CSVRenderer):
    results_field = 'results'

    def render(self, data, media_type=None, renderer_context=None):
        if not isinstance(data, list):
            data = data.get(self.results_field, [])
        return super(PaginatedCSVRenderer, self).render(data, media_type, renderer_context)

正如我在他们的github网站上找到的那样:django-rest-framework-csv。我希望渲染器做的是返回csv中的所有内容。目前它只返回当前页面。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用python csv模块转换页面并返回csv。我没有测试它,但我认为它应该工作。我假设制表符分隔符但你可以改变它。

import csv

class PaginatedCSVRenderer (CSVRenderer):
    results_field = 'results'

    def render(self, data, media_type=None, renderer_context=None):
        if not isinstance(data, list):
            data = data.get(self.results_field, [])
        csv_input= super(PaginatedCSVRenderer, self).render(data, media_type, renderer_context)= csv.reader(open(txt_file, "rb"), delimiter = '\t')
        csv_output = csv.writer(csv_input)
        return csv_output