CSV-модуль Django-Rest-Framework с использованием модуля с разбивкой на страницы

Здравствуйте, я использую модуль django-rest-framework-csv и следовал инструкциям по созданию средства визуализации с разбиением на страницы, используя этот код:

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. В настоящее время он возвращает только текущую страницу. Кто-нибудь может помочь?


person jangeador    schedule 03.11.2015    source источник


Ответы (1)


Вы можете использовать модуль 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
person Illusionist    schedule 03.11.2015
comment
Средство визуализации уже возвращает CSV, но возвращает только записи на текущей странице. Я хотел посмотреть, смогу ли я заставить рендерер прочитать все страницы и вывести все записи в csv. - person jangeador; 04.11.2015