在安装了 Django 的开发源以及源代码中的 PostgreSQL 以及源代码中所需的所有其他内容之后,我正在学习 Django 教程。我正在尝试在 Ubuntu 12.10 上使用 python3 而不是 python 来完成所有操作。
一切似乎都很顺利,直到我到达教程中我们应该重新定义的部分__unicode__()
为了当我们从表中请求objects.all()时返回一个合理的结果。它根本不起作用。我决定尝试一下__str__()
,它成功了!
但是,教程解释了我们不应该重新定义__str__()
。那么,我的安装有什么问题__unicode__()
不起作用,同时__str__()
做?教程中的其他方法效果很好。
Python 3 与 2 中字符串的处理方式有所不同。
In 2, __str__()
返回字节,同时__unicode__()
返回的字符。 3、__str__()
现在返回字符,因为字符串现在是本机 unicode,并且__unicode__()
不存在。如果您确实需要旧的 2 行为__str__()
,我相信就是现在__bytes__()
.
简短的回答,坚持下去__str__()
如果您使用的是 Python 3,并且意识到 Django 教程明确声明它们是为 2.x 编写的,因此会有差异。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)