Potrzebuję zwrócić wygenerowane pobranie pliku jako odpowiedź ramową RMS Django. Próbowałem następujące:Jak zwrócić wygenerowany plik do pobrania z Django REST Framework?
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
ale zwraca dokumentu msword jak json
.
Jak mogę zamiast tego zacząć pobierać jako plik?
Chcesz powiedzieć, że utworzyłeś plik Word, które trzeba przekazać do Front End więc tym froncie użytkownika końcowego powinien móc go pobrać? –
@ PiyushS.Wanare dokładnie – Viktor
Może po wygenerowaniu pliku, jeśli jest publicznie dostępny z twojego serwera WWW (bez kodu Django, autoryzacji itp.), Możesz wysłać odpowiedź przekierowania 302. – Owen