1

Django アプリケーションでは、ユーザーはフォームを使用して画像をアップロードしています。理由はわかりません。名前にアクセント付きの文字が含まれるファイルをアップロードできます。例外は以下です

File "pathto/python2.7/django/core/handlers/base.py", line 111, in get_response
   応答 = コールバック(要求、*callback_args、**callback_kwargs)

 ファイル "/pathto/python2.7/django/contrib/auth/decorators.py"、23 行目、_wrapped_view 内
   return view_func(request, *args, **kwargs)

 ファイル「/pathto/views.py」、75 行目、upload_image 内
   obj = form.save(リクエスト.ユーザー)

 ファイル「/form.py」、88行目、保存中
   obj.save()

 ファイル「/pahtto/python2.7/django/db/models/base.py」、460行目、保存
   self.save_base(using=using, force_insert=force_insert, force_update=force_update)

 ファイル "/pathto/python2.7/django/db/models/base.py"、543 行目、save_base 内
   for f in meta.local_fields if not isinstance(f, AutoField)]

 ファイル "/pathto/lib/python2.7/django/db/models/fields/files.py"、255 行目、pre_save 内
   file.save(file.name, file, save=False)

 ファイル「/pathto/extrantool.py」、96 行目、保存
   super(ImageWithThumbsFieldFile, self).save(名前、内容、保存)

 ファイル「/pathto/python2.7/django/db/models/fields/files.py」、92行目、保存
   self.name = self.storage.save(名前、内容)

 ファイル「/pathto/python2.7/django/core/files/storage.py」、48行目、保存
   name = self.get_available_name(名前)

 ファイル "/pathto/python2.7/django/core/files/storage.py"、74 行目、get_available_name 内
   while self.exists(名前):

 ファイル「/pathto/python2.7/django/core/files/storage.py」、218行目、存在します
   return os.path.exists(self.path(名前))

 ファイル「/usr/local/lib/python2.7/genericpath.py」の 18 行目に存在します
   os.stat(パス)

UnicodeEncodeError: 'ascii' コーデックは位置 66 の文字 u'\xe9' をエンコードできません: 序数が範囲内にありません(128)
4

1 に答える 1

3

推測では、Brandon は正しく、ファイル名に非 ASCII 文字が含まれています。エラーメッセージをグーグルで検索する

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 66

最初の 2 つのリンクとして次の情報が表示されます。

  1. Python Unicode エラーのブログ エントリ
  2. Python の公式 Unicode ドキュメント

検索に「django」を追加すると、実際に StackOverflow の回答が得られます。

UnicodeEncodeError: 'ascii' コーデックは文字をエンコードできません

したがって、djangoの言語設定を確認することをお勧めします。

于 2012-05-04T07:00:15.287 に答える