在 Django 管理中编码
Encoding in Django admin
在我的模型中,我有一个定义如下的字段:
姓名=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__()
方法中。
您应该始终对所有文本数据使用 u'
前缀。所以如果你这样写:
def __unicode__(self):
return 'Model: %s' % self.name
那你需要改成:
def __unicode__(self):
return u'Model: %s' % self.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__()
方法中。
您应该始终对所有文本数据使用 u'
前缀。所以如果你这样写:
def __unicode__(self):
return 'Model: %s' % self.name
那你需要改成:
def __unicode__(self):
return u'Model: %s' % self.name