Django 1.11.20,python3.6设置Admin 显示外键对象问题
By:Roy.LiuLast updated:2019-02-22
转移阿里云服务器,同时把多年前做的一个工作室公司网站转移到新的环境,python3.6.6, django 1.11.20上,在代码上做了一些调整,基本可以运行起来了,但到Django Admin 后台查看相关数据的时候,尴尬了。
外键关联的字段,显示的是对象,而不是应该显示的中文名称。
这个系统是很从很来的python2切换过来的,想想问题就应该出在models.py里面的定义上面.原来我在models里面是这么定义的:
问题就出在ServiceCategory里面的__unicode__方法上,在python3里面,应该改成__str__, 如下:
再次测试,是期望的结果了。
外键关联的字段,显示的是对象,而不是应该显示的中文名称。
这个系统是很从很来的python2切换过来的,想想问题就应该出在models.py里面的定义上面.原来我在models里面是这么定义的:
class ServiceCategory(models.Model): id = models.AutoField(primary_key=True) catname = models.CharField(max_length=150, blank=True) class Meta: db_table = 't_service_category' verbose_name = u'service_category' verbose_name_plural = u'service_category' #app_label = u'My_Category' def __unicode__(self): return self.catname class Service(models.Model): id = models.AutoField(primary_key=True) catid = models.ForeignKey(ServiceCategory,db_column= 'catid',to_field='id',blank=False,verbose_name = 'catid') title = models.CharField(max_length=150, blank=True) content = models.TextField(blank=True) class Meta: db_table = 't_service' verbose_name = u'service' verbose_name_plural = u'service' #app_label=u"My_Company"
问题就出在ServiceCategory里面的__unicode__方法上,在python3里面,应该改成__str__, 如下:
class ServiceCategory(models.Model): id = models.AutoField(primary_key=True) catname = models.CharField(max_length=150, blank=True) class Meta: db_table = 't_service_category' verbose_name = u'service_category' verbose_name_plural = u'service_category' #app_label = u'My_Category' def __str__(self): return self.catname
再次测试,是期望的结果了。
From:一号门
Previous:阿里rds转MYSQL随手记
Next:分布式定时任务备忘录
COMMENTS