Я определил URL-адрес в urls.py
для экспорта некоторых данных как csv
, используя Django 3.0.6
и djangorestframework 3.10.3
re_path(
r'^(?:v1/)?export/csv/$',
api.ExportAPIView.as_view(),
name='export'
),
А вот код api.py
для обработки этого URL-адреса :
class ExportAPIView(APIView):
def get(self, request, *args, **kwargs):
http_response = HttpResponse(content_type='text/csv')
http_response[
'Content-Disposition'] = 'attachment; filename="somefilename.csv"'
writer = csv.writer(http_response)
writer.writerow(['First row', 'Foo', 'Bar', 'Baz'])
writer.writerow(
['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"])
return http_response
Ответ этого кода должен быть простым csv
файлом, содержащим две строки, но вместо этого я получаю эту ошибку:
AttributeError at /v1/export/csv/
'HttpResponse' object has no attribute 'data'
Обратите внимание, что я использовал renderer_classes = [CSVRenderer]
от djangorestframework-csv
и StreamingHttpResponse
тоже не повезло. Так в чем же проблема, которую мне здесь не хватает?