django 下拉菜单显示为object的解决办法

时间:2023-03-10 00:16:57
django 下拉菜单显示为object的解决办法

  在创建完Django数据库结构之后,使用Django自带的强大的admin功能往数据库中添加数据,图形化界面如下:

django 下拉菜单显示为object的解决办法

  但时候有下拉框选项(只要在model中有定义Charfield就会显示为下拉框),如果遇到了如下情况:

  django 下拉菜单显示为object的解决办法

  这是很反人类的,我知道他是NewsType 对象,你倒是显示对象的名称啊!

  找了很多方法,查看了AdminModel的源代码:

django 下拉菜单显示为object的解决办法

  我使用的python版本为3.6,可以看到list_display使用的是__str__方法,但是我在我的models中所有的返回值都是Unicode(其实python3自动进行了兼容处理,,看到那个装饰器了吗?会将str转为unicode),猜想是不是这个原因呢?

  在models中更改Unicode为str后

django 下拉菜单显示为object的解决办法

  django 下拉菜单显示为object的解决办法

  结果正常显示了

  django 下拉菜单显示为object的解决办法