Django adminでファイルアップロード時の日本語対応方法についてご教授お願いします。

364 views
Skip to first unread message

Hari Manmon

unread,
Aug 5, 2014, 10:53:06 PM8/5/14
to djan...@googlegroups.com


Django 1.7 でWebサイト構築を行っています。

どうしても解決しないため投稿させていただきます。

models.pyでImageFieldを属性としたクラスを定義しているのですが
adminサイトから日本語名のファイルをアップロードしようとすると
'ascii' codec can't encode characters in position 47-52: ordinal not in range(128)
エラーがでます。
utf 8にデコードしたいと考えています。
解決方法がありましたらご教授お願いします。
ソースは以下のようになっています。
models.py
class Image(models.Model):
  img = models.ImageField(upload_to=settings.MEDIA_ROOT)
  def __unicode__(self):
     return os.path.basename(self.img.name)
  

shimasoba

unread,
Aug 6, 2014, 2:23:39 AM8/6/14
to djan...@googlegroups.com
Apacheをご利用でしたら、HTTPD_LANG=ja_JP.utf8を設定したらどうでしょうか?

2014年8月6日水曜日 11時53分06秒 UTC+9 Hari Manmon:

山平将大

unread,
Aug 6, 2014, 8:11:32 AM8/6/14
to djan...@googlegroups.com
Django1.4の頃に経験したことなので、今回のケースを改善できるかは
不明ですが、私も過去に日本語名のファイルをアップロードできなかったことが
ありました。

私はDjango環境はCentOSを使っているので、下記の設定で日本語名の
ファイルがアップロードできるようになりました。

```
 # vi /etc/profile
 export LANG='ja_JP.UTF-8'
 export LC_ALL='ja_JP.UTF-8'

# source /etc/profile
```


2014年8月6日水曜日 11時53分06秒 UTC+9 Hari Manmon:
Reply all
Reply to author
Forward
0 new messages