在我的模型中,我有一个如下定义的字段:
name = models.CharField(max_length = 50)
然后在管理面板中,如果我尝试插入一个名称包含'č','š','ž'等字符的记录,我会得到UnicodeEncodeError .
'ascii' codec can't encode character u'\u017e' in position 3: ordinal not in range(128)
这是什么?为什么django不使用utf-8作为一切?
Django使用 utf-8 作为一切 . 我想错误可能出现在模型的 __unicode__() 方法中 .
utf-8
__unicode__()
您应该始终对所有文本数据使用 u' 前缀 . 所以,如果你写这样的东西:
u'
def __unicode__(self): return 'Model: %s' % self.name
那你需要把它改成:
def __unicode__(self): return u'Model: %s' % self.name
1 回答
Django使用
utf-8
作为一切 . 我想错误可能出现在模型的__unicode__()
方法中 .您应该始终对所有文本数据使用
u'
前缀 . 所以,如果你写这样的东西:那你需要把它改成: