嗨,当用户点击我需要显示pdf文件时,我是django框架的新手 我正在使用的代码是
with open(file_path+file_name, 'rb') as pdf:
response = HttpResponse(pdf.read(), mimetype='application/pdf', contenttype='application/pdf')
response['Content-Disposition'] = 'inline;filename=some_file.pdf'
我得到的错误是
File "/usr/local/lib/python3.4/dist-packages/rest_framework/viewsets.py", line 90, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py", line 489, in dispatch
response = self.handle_exception(exc)
File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py", line 449, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/lib/python3.4/dist-packages/rest_framework/views.py", line 486, in dispatch
response = handler(request, *args, **kwargs)
File "/home/tritwdapp/tribalwelfare/inspection/inspectdataview.py", line 290, in getSubmitReport
response = HttpResponse(pdf.read(), mimetype='application/pdf',contenttype='application/pdf')
File "/usr/local/lib/python3.4/dist-packages/django/http/response.py", line 283, in __init__
super(HttpResponse, self).__init__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'contenttype'
任何人都可以帮助我
答案 0 :(得分:0)
试试这个:
def pdf_view(request):
with open('file.pdf', 'r') as pdf:
response = HttpResponse(pdf.read(), content_type='application/pdf')
response['Content-Disposition'] = 'inline;filename=some_file.pdf'
return response
mimetype
已被content_type
取代。它已在Django 1.7
中删除。另外,你拼错了。
请注意,这样的解决方案并非最佳。通常,出于性能原因,您的Web服务器将提供这些文件。