django - `__unicode__()` 添加在 Django 教程中的基本轮询应用程序中不起作用

标签 django

在安装了 Django 的开发源代码以及来自源代码的 PostgreSQL 以及来自源代码的所有其他需要的东西后,我正在学习 Django 教程。我正在尝试在 Ubuntu 12.10 上使用 python3 而不是 python 来做所有事情。

一切似乎都很顺利,直到我到达教程中我们应该重新定义的部分 __unicode__()为了在我们从表中请求 objects.all() 时返回合理的结果。它根本不起作用。我决定试试 __str__() ,它奏效了!

但是,教程解释了我们不应该重新定义 __str__() .那么,我安装的 __unicode__() 有什么问题? __str__() 时不起作用做?教程中的其他方法工作正常。

最佳答案

字符串在 Python 3 和 2 中的处理方式不同。

2、__str__()返回字节,而 __unicode__()返回的字符。 3、__str__()现在返回字符,因为字符串现在是原生的 unicode,并且 __unicode__()不存在。如果您真的需要 __str__() 的旧 2 行为,相信现在是__bytes__() .

简短的回答,坚持 __str__()如果您使用的是 Python 3,并且意识到 Django 教程明确声明它们是为 2.x 编写的,那么就会存在差异。

关于django - `__unicode__()` 添加在 Django 教程中的基本轮询应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13357251/

相关文章:

python - 抽象类作为外键

javascript - Django 和 JavaScript : dependent dropdown not working

python - 突然我得到 DJANGO_SETTINGS_MODULE is not defined when using runserver

python - View 未返回 HttpResponse 对象

django - 在管理员中对 list_editable 字段进行自定义验证

javascript - 使用javascript fetch将数据发布到django rest框架

python - 带有不在模型中的额外字段的 Django ModelForm

Django 模型中的 Python factory_boy 库 m2m?

python - 无法使用 django-redis 连接到 redis

python - 如何在不刷新的情况下显示从服务器推送到网页的更新?