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了下没结果,写篇帖子留记录)
为什么是 __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了下没结果,写篇帖子留记录)
相关文章推荐
- Virtualbox 遇到发现添加网卡遇到 “发现无效设置解决方法”
- 【操作系统】chrome插件无法安装解决方法或者提示“将该项添加到 Chrome 浏览器时出错。请刷新此页面,然后重试。”的解决办法
- Struts2 OGNL表达式中调用java静态方法无效的解决办法
- Java1.7通过collections类的sort方法对ArrayList进行排序无效的解决办法。
- 通过ORACLE 客户端, 在WINDOWS XP 上添加ORACLE ODBC SOURCE的方法 odbc数据源管理器没有oracle驱动的解决办法
- Git .gitignore 添加后无效的解决办法
- VC6.0“打开”选项,“添加文件到目录”无效的解决方法
- Django1.3添加app提示模块不存在的解决方法
- Android中popupwindow中的listview的onItemClick方法无效de解决办法
- Android使用requestWindowFeature(Window.FEATURE_NO_TITLE)方法去除标题无效解决办法
- a标签用jquery的attr添加onclick方法无效的解决
- Mac上添加环境变量的方法,以及conda命令无法调用的解决办法
- jQuery移除tr无效的解决方法(tr是动态添加)
- .gitignore 添加后无效的解决办法
- Django1.3添加app提示模块不存在的解决方法
- android ListView item中添加checkbox之后点击无效的解决办法
- 解决使用jQuery采用append添加的元素事件无效的方法
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- Radio 单选JS动态添加的选项onchange事件无效的解决方法
- JSONObject的put方法覆盖已经添加过的数据,造成数据污染解决办法