django 下拉菜单显示为object的解决办法
在创建完Django数据库结构之后,使用Django自带的强大的admin功能往数据库中添加数据,图形化界面如下:
但时候有下拉框选项(只要在model中有定义Charfield就会显示为下拉框),如果遇到了如下情况:
这是很反人类的,我知道他是NewsType 对象,你倒是显示对象的名称啊!
找了很多方法,查看了AdminModel的源代码:
我使用的python版本为3.6,可以看到list_display使用的是__str__方法,但是我在我的models中所有的返回值都是Unicode(其实python3自动进行了兼容处理,,看到那个装饰器了吗?会将str转为unicode),猜想是不是这个原因呢?
在models中更改Unicode为str后,
结果正常显示了