0

Здравствуй Я использую django-rest-framework-csv модуль, и я следовал инструкциям для создания постраничной визуализации с помощью этого кода:Джанго-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. В настоящее время он возвращает только текущую страницу. Может кто-нибудь помочь?

ответ

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 
+0

Средство визуализации уже возвращает CSV, но возвращает только записи на текущей странице. Я хотел посмотреть, могу ли я заставить рендеринга читать все страницы и выводить все записи на csv. – jangeador