djangoでpdfダウンロード機能を実装する

2022年5月3日

djangoでpdfダウンロード機能を実装する

コツコツアプリを作成しております。
最低限の機能とメニュー画面が出来たのでPDF形式のマニュアルをダウンロードできる機能を追加してみたいと思います。

まずは動きを見てみたいと思います。

参考:
  Djangoでファイルをダウンロードさせる方法
  Django 1.7ではmimetypeではなくcontent_typeを利用する

プログラム

views.pyから独自モジュールの「pdf.get_manual」を呼び出すようにしてあげました。


...
def manual(request):
    return pdf.get_manual(request)

独自モジュールのpdf.pyは下の通りです。


from django.http import HttpResponse
def get_manual(request):
    response = HttpResponse(open('/path/to/pdf/marketista.pdf', 'rb').read(), content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="marketista.pdf"'
    return response

ここで注意しないといけないのが「Django 1.7ではmimetypeではなくcontent_typeを利用する」と言う事です。
そうしないと下のようなエラーが出ます。


__init__() got an unexpected keyword argument 'mimetype'

最後に

マニュアルを作成するにあたってよいサイトや機能が色々見つかったので今度紹介したいと思います。色に関しては仮で決めて進めてきましたがいい感じにマニュアルと揃えたいなぁ...

2022年5月3日