gunicornで起動したDjangoにおいてunicode文字をファイル名に含むファイルをアップロードするときのエラーの解決策(the solution when you face to uploading file error, when uploading file’s title include unicode strings )

前回の記事で
「nginx + gunicorn + upstartでDjangoを走らせる」

nginx + gunicorn + upstartでdjangoを走らせる


というのを書きました。

しかし、この記事のやり方で立ち上げたDjangoアプリケーションにおいて、ファイルアップロードを実装するときに
ファイル名にユニコード文字を含むとアップロードできないという問題が発生しました。

ちなみにもう少し詳しくいうと、今回はDjangoアプリケーションにおいてファイルアップロード用に
FileFieldをModelで設定したときに、保存するタイミングでエラーがでました。

models.py

view.py

エラー的にはこんな感じです。

文字環境の問題のようですね。

さっそく解決策ですが、簡単です。
initctlで立ち上げている.confファイルの中に以下の記述を追加してあげます。
(initctl、.confファイルがわからない場合は、上記リンクを参照してみてください。)

編集前 /etc/init/demo-app.conf

編集後 /etc/init/demo-app.conf

参考)