加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django应用程序中的/ admin /中的UnicodeEncodeError

发布时间:2020-12-20 12:21:42 所属栏目:Python 来源:网络整理
导读:当我尝试查看现有对象列表时,我在管理页面上收到以下错误. UnicodeEncodeError at /admin/character/charlevel/'ascii' codec can't encode character u'xd6' in position 0: ordinal not in range(128)Request Method: GETRequest URL: http://127.0.0.1:8
当我尝试查看现有对象列表时,我在管理页面上收到以下错误.

UnicodeEncodeError at /admin/character/charlevel/

'ascii' codec can't encode character u'xd6' in position 0: ordinal not in range(128)

Request Method:     GET
Request URL:    http://127.0.0.1:8000/admin/character/charlevel/
Django Version:     1.4.1
Exception Type:     UnicodeEncodeError
Exception Value:    

'ascii' codec can't encode character u'xd6' in position 0: ordinal not in range(128)

Exception Location:     /home/***/workspace/***/***/character/models.py in __unicode__,line 413
Python Executable:  /usr/bin/python
Python Version:     2.7.3

当我打开这个类的对象列表时会发生这种情况:

class CharLevel(models.Model):
    char = models.ForeignKey(Character)
    prof = models.ForeignKey(Profession)
    level = models.SmallIntegerField()

    def __unicode__(self):
        return ('{c}/{l}/{p}'.format(c=self.char.name,l=self.level,p=self.prof )).encode('utf-8')

如果我删除字符串格式的{c}组件,问题就会消失

但是,对于具有以下__unicode__的类Charater,不会发生此问题:

class Character(models.Model):
    name = models.CharField(max_length=32)
    def __unicode__(self):
        return self.name

我做错了什么?

解决方法

__unicode__应该返回unicode:

def __unicode__(self):
    return u'{c}/{l}/{p}'.format(c=self.char.name,p=self.prof)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读