- 安裝
djangorestframework-csv
settings
中設置
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework_csv.renderers.CSVRenderer',)
}
- 首先我們先寫一個接口來進行下載
/api/download/file/xxx
class FileDownloadView(APIView):
"""文件下載"""
permission_classes = (IsAuthenticated, )
def get(self, request, *args, **kwargs):
type = request.GET.get('type', None)
renderer = FileRender()
data = (
FileRenderSerializer(instance).data
for instance in queryset
)
response = StreamingHttpResponse(
renderer.render(data),
content_type='text/{}'.format(type)
)
response['Content-Disposition'] = 'attachment; filename="somefilename.{}"'.format(type)
return response
class FileRenderSerializer(serializers.ModelSerializer):
class Meta:
model = File
fields = "__all__"
class FileRender(renderers.CSVStreamingRenderer):
header = [
'name',
'add_time'
]
labels = dict([
('name', u'姓名'),
('add_time', u'添加時間'),
])