您的位置:首页 > 编程语言 > Go语言

Django添加方法__unicode__()无效 的解决办法

2013-10-12 00:09 330 查看
初学Django,按照教程添加__unicode__()方法后不工作,还是显示默认的内容,教程是这么说的

为什么是 __unicode__() 而不是 __str__()?

如果你熟悉 Python,那么你可能会习惯在类中添加 __str__() 方法而不是 __unicode__() 方法。
We use 我们在这里使用 __unicode__() 是因为
Django 模型默认处理的是 Unicode 格式。当所有存储在数据库中的数据返回时都会转换为 Unicode 的格式。

Django 模型有个默认的 __str__() 方法
会去调用 __unicode__() 并将结果转换为
UTF-8 编码的字符串。这就意味着 unicode(p) 会返回一个 Unicode 字符串,而 str(p) 会返回一个以
UTF-8 编码的普通字符串。

如果这让你感觉困惑,那么你只要记住在模型中添加 __unicode__() 方法。
运气好的话,这些代码会正常运行。

思考了下可能是因为在python3.0以后默认字符都改成了unicode,导致这个在2.7下可以运行的方法在3.0中失效。

直接换成__str__() 运行正常。

(google了下没结果,写篇帖子留记录)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django
相关文章推荐