1

在 Django 应用程序中,用户正在使用表单上传图像。我不确定为什么。我可以上传名称中带有重音字符的文件。例外如下

File "pathto/python2.7/django/core/handlers/base.py", line 111, in get_response
   响应 = 回调(请求,*callback_args,**callback_kwargs)

 _wrapped_view 中的文件“/pathto/python2.7/django/contrib/auth/decorators.py”,第 23 行
   返回 view_func(请求,*args,**kwargs)

 文件“/pathto/views.py”,第 75 行,在 upload_image 中
   obj = form.save(request.user)

 文件“/form.py”,第 88 行,保存中
   obj.save()

 文件“/pahtto/python2.7/django/db/models/base.py”,第 460 行,保存
   self.save_base(使用=使用,force_insert=force_insert,force_update=force_update)

 文件“/pathto/python2.7/django/db/models/base.py”,第 543 行,在 save_base
   对于 f in meta.local_fields 如果不是 isinstance(f, AutoField)]

 文件“/pathto/lib/python2.7/django/db/models/fields/files.py”,第 255 行,在 pre_save
   file.save(文件名,文件,保存=假)

 文件“/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(name)

 文件“/pathto/python2.7/django/core/files/storage.py”,第 74 行,在 get_available_name
   而self.exists(名称):

 文件“/pathto/python2.7/django/core/files/storage.py”,第 218 行,存在
   返回 os.path.exists(self.path(name))

 文件“/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

给我以下作为前两个链接:

  1. Python Unicode 错误博客条目
  2. Python 官方 Unicode 文档

在搜索中添加“django”实际上给了我们一个 StackOverflow 答案!

UnicodeEncodeError:“ascii”编解码器无法编码字符

所以 - 检查你的 django 语言设置是我的建议。

于 2012-05-04T07:00:15.287 回答