вернуть CSV-файл в ответ только с заголовками в нем - PullRequest
1 голос
/ 29 апреля 2019

Мне нужно создать остальные API в Django, который будет возвращать CSV-файл, который содержит только заголовки, а также файл создается во время выполнения.Вот мой код, не знаю, почему он не отправляет файл, в идеале эта функция должна возвращать CSV-файл, который будет иметь заголовки в качестве имен файлов.

def get_template():

    fieldnames = ['id, rate_plan_name, test_cd, test_name, price, 
                  is_package, is_deleted']
    with open('templates.csv', 'w') as csvfile:
        wtr = csv.writer(csvfile, delimiter=',')
        wtr.writerow(fieldnames)

        response = HttpResponse('templates.csv', content_type='application/x-download')
        filename = "template_%s.csv" % (datetime.utcnow())
        content = "attachment; filename='%s'" % filename
        response['Content-Disposition'] = content
        return response

1 Ответ

0 голосов
/ 03 мая 2019

Попробуйте следующим образом (используйте StreamingHttpResponse):

from django.http import StreamingHttpResponse
# this is simplified - you can use csv.reader/writer here;

# your views definition go here


csv_headers = 'id,reate_plan_name, ...'
buffer = StringIO()
buffer.write(csv_headers)
response = StreamingHttpResponse(buffer.getvalue(), content_type="text/csv")
response['Content-Disposition'] = 'attachment; filename="test.csv"'
return response

Счастливое кодирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...