Ошибка PDF после загрузки как Content-Disposition '= вложение - PullRequest
0 голосов
/ 28 апреля 2020

В моей структуре отдыха у меня есть метод получения в ModelViewSet, так как

def retrieve(self, request, *args, **kwargs):
        instance = self.get_object()
        serializer = self.get_serializer(instance)
        print(serializer.data)
        pdf = serializer.data['pdf']
        response = Response(pdf, content_type='application/pdf')
        response['Content-Disposition'] = 'attachment; filename="invoice.pdf"'
        return response

pdf - это поле модели типа FileField.

Я могу автоматически загрузить файл PDF на URL, но когда я пытаюсь открыть pdf, выдается ошибка, на chrome появляется сообщение «Не удалось загрузить документ PDF», а в программе просмотра PDF - «не поддерживается тип файла или файл поврежден (отправить как вложение электронной почты, неправильно декодированное) "

Что мне еще нужно сделать, чтобы оно работало правильно.

Хотя файл PDF имеет правильный формат и может быть открыт напрямую,

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2020

, поскольку pdf был только URL-адресом, он был недействительным.

переписал ответ так:

response = HttpResponse(instance.pdf, content_type='application/pdf')

решил проблему.

...