django unicode编码/解码错误

Kar*_*lgo 1 django unicode internationalization

我的网站需要能够以不同语言提供数据.我设置它所以它使用utf-8并且db设置也被设置为.我一直在管理员身上得到不同的unicode错误.

例如:

  1. 在管理列表中,当列表中的字段包含非ascii字符时.(我得到UnicodeDecodeError)
  2. 添加新条目时,如果模型的unicode方法返回utf-8解码(修复#1),则为UnicodeEncodeError .
  3. 在admin中使用filter_horizo​​ntal时,如果使用的模型中的数据包含非ascii字符,则过滤器将从表单中消失.

如果我为模型设置unicode方法返回例如:

return u'%s' % unicode(self.tag)
Run Code Online (Sandbox Code Playgroud)

这似乎解决了#1和#2,但那时我得到了#3.

我一直在寻找一个解决方案,但找不到能解决所有不同错误的东西.处理这些问题的最佳方法是什么?

Tom*_*gli 6

from django.utils.encoding import smart_unicode
...
def __unicode__(self): 
    return smart_unicode(self.tag)
Run Code Online (Sandbox Code Playgroud)