ITPub博客

首页 > Linux操作系统 > Linux操作系统 > python + django Models外键UnicodeEncodeError

python + django Models外键UnicodeEncodeError

原创 Linux操作系统 作者:ePower518 时间:2012-08-29 17:06:50 0 删除 编辑

在编码过程中,出现奇怪的UnicodeEncodeError问题:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 52-54: ord
inal not in range(128)

尝试Decode和Encode多次未解决!百思不得其解。

1、之前,出现该问题,只要将文件另存为UTF-8 并在py文件头设置

#coding=utf-8

问题即得到解决!

2、检查Hex代码和其他py文件没有差异

3、因为不能具体定位到什么位置出现UnicodeEncodeError问题,故手工

一个一个Models class进行copy到新的model文件中,发现问题尽然出现在

models.ForeignKey的verbose_name上。使用参数位置定义verbose name属性。

如下:

templateid = models.ForeignKey(u'编号',Templates)

修改如下:

templateid = models.ForeignKey(Templates, verbose_name = u'模板编号')

问题即可解决。并在多次其他相同ForeignKey Field中重复出现和解决,得到确认。

该问题碰到后,很难去定位和解决,网上也无该问题的相似解决方案。故,值得一记。个人觉得,可能是django在verbose参数中对中文支持的一个BUG。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/88305/viewspace-742187/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-04-26

  • 博文量
    11
  • 访问量
    97142