Tôi cần trả lại tệp đã tải xuống dưới dạng phản hồi khung REST của Django. Tôi đã thử các cách sau:Làm thế nào để trả về tải xuống tệp được tạo bằng khung công tác REST Django?
def retrieve(self, request, *args, **kwargs):
template = webodt.ODFTemplate('test.odt')
queryset = Pupils.objects.get(id=kwargs['pk'])
serializer = StudentSerializer(queryset)
context = dict(serializer.data)
document = template.render(Context(context))
doc = converter().convert(document, format='doc')
res = HttpResponse(
FileWrapper(doc),
content_type='application/msword'
)
res['Content-Disposition'] = u'attachment; filename="%s_%s.zip"' % (context[u'surname'], context[u'name'])
return res
Nhưng nó trả về tài liệu msword là json
.
Làm cách nào để bắt đầu tải xuống dưới dạng tệp?
Bạn có nghĩa là để nói rằng bạn đã tạo ra một file word mà bạn cần phải vượt qua để Front End để người dùng cuối Mặt trận có thể tải xuống không? –
@ PiyushS.Wanare chính xác – Viktor
Có thể sau khi tệp được tạo, nếu có thể truy cập công khai từ máy chủ web của bạn (không có mã Django, ủy quyền, v.v.), bạn có thể gửi phản hồi Chuyển hướng 302. – Owen