django admin无法使用utf-8文件名上传文件

时间:2011-06-30 11:12:51

标签: django django-admin

更新:感谢Udi的建议,我打开了调试并更新了错误消息和我的模型

这是我的模特:

class booktitle(models.Model):
    added_by = models.ForeignKey(User)
    book_title_zh = models.CharField(max_length=255)
    book_desc_zh = models.TextField(blank=True, null=True)
    author_zh = models.CharField(max_length=255)
    publisher_zh = models.CharField(max_length=255)
    category = models.ForeignKey(category)
    cover_img = models.ImageField(upload_to='books/book_img_cover', blank=True, null=True)
    last_updated = models.DateField(auto_now=True)
    date_added = models.DateField(auto_now=True)

    class Meta:
        ordering = ('-date_added',)
        verbose_name = 'Book : 書本'
        verbose_name_plural = 'Book : 書本'

我有一个标准的django安装。当我使用它上传带有中文字符的文件名时,它会显示以下错误:

  

UnicodeEncodeError at   / admin / booksfair / booktitle / 6 /'ascii'   编解码器无法对字符进行编码   位置51-53:序数不在   range(128)请求方法:POST   请求   网址:http://www.mydomain.com/admin/booksfair/booktitle/6/   Django版本:1.4 pre-alpha   SVN-16395例外   类型:UnicodeEncodeError异常   值:'ascii'编解码器无法编码   51-53位置的字符:序数   不在范围内(128)例外   位置:/usr/lib/python2.6/genericpath.py   在存在,第18行Python   可执行文件:/ usr / bin / python Python   版本:2.6.7 Python路径:
  [ '/usr/lib/python26.zip',   '/usr/lib/python2.6',   '/usr/lib/python2.6/plat-linux2',   '/usr/lib/python2.6/lib-tk',   '/usr/lib/python2.6/lib-old',   '/usr/lib/python2.6/lib-dynload',   '/usr/lib/python2.6/site-packages',   '/usr/lib/python2.6/site-packages/PIL',   '/usr/lib/python2.6/site-packages/gtk-2.0',   '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info',   '在/ var / WWW',   '在/ var / www / html等/ Django的/网站',   '/无功/网络/ HTML / django的']

我在这里找到了一些解决方案,但它对我的情况不起作用,这不是一个重复的帖子。谢谢。

1 个答案:

答案 0 :(得分:0)

由于设置不正确,您的错误消息无效。

(由于您应该收到一条完全不同的错误消息,请在新问题中再次发布新错误消息,而不是更新此问题。谢谢。)