django admin下拉列表不显示值,显示为object的处理

Posted 朝阳的向日葵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django admin下拉列表不显示值,显示为object的处理相关的知识,希望对你有一定的参考价值。

问题:模板中创建form表单中的下拉列表, 前台打开页面显示object,而不是值,如图:

技术分享

尝试了多种办法无果,最后解决了,处理办法是修改models.py,原来的model:

[python] view plain copy
  1. class TechnicistLocation(models.Model):  # 技术人员位置  
  2.     LocationName = models.CharField(‘位置名称‘, max_length=20)  
  3.   
  4.     class Meta:  
  5.         verbose_name_plural = ‘技术人员位置‘  
  6.         app_label ="schedule"  
  7.   
  8.     def __unicode__(self):  
  9.         return self.LocationName  


修改后的model:

[python] view plain copy 技术分享技术分享
  1. class TechnicistLocation(models.Model):  # 技术人员位置  
  2.     LocationName = models.CharField(‘位置名称‘, max_length=20)  
  3.   
  4.     class Meta:  
  5.         verbose_name_plural = ‘技术人员位置‘  
  6.         app_label ="schedule"  
  7.   
  8.     def __str__(self):  
  9.         return self.LocationName     

区别就在倒数第二行,python3直接使用__str__(self)就可以了,如果是python2,则要用__unicode__(self)


以上是关于django admin下拉列表不显示值,显示为object的处理的主要内容,如果未能解决你的问题,请参考以下文章

如何使用列表中显示的相关项目的下拉列表使特定模型类的 Django contrib Admin 更改列表可编辑?

Django Admin ForeignKey字段小部件选项和不一致的默认值

Django Admin Cookbook-36如何更改下拉菜单中的ForeignKey显示文本

Django admin 中的自定义相关下拉菜单

只读模型并在django admin中显示为列表?

在 Django 模板的 Bootstrap 4 多选下拉列表中显示多选字段值