当我在模型部分中定义一个类时,我会编写一个__unicode__
方法。但它仍然显示类名+对象形式。比如,Publisher对象
class Publisher(models.Model):
name = models.CharField(max_length = 30)
address = models.CharField(max_length = 50)
city = models.CharField(max_length = 60)
state_province = models.CharField(max_length = 30)
country = models.CharField(max_length = 50)
website = models.URLField()
def __unicode__(self):
return self.name
答案 0 :(得分:2)
如果您使用的是Python 3+,则应使用str
类型和__str__
函数,因为没有unicode
类型。可能Django文档已经过时了。
我对此并不十分肯定,因此上段也可能完全是胡说八道。
答案 1 :(得分:1)
正如@Python Fanboy所说,可能是因为你正在运行python3: See here
Django最近才开始支持py3,因此大多数旧文档可能需要更新。
答案 2 :(得分:0)
我正在遵循相同的教程,并且还遇到了关于错误输出的错误(将 unicode ()方法添加到代码后没有实际效果)。 在我的情况下,问题是_ unicode _()方法的缩进不正确。我最初没有注意到这一点,因为重新进入shell后控制台中没有错误( python manage.py shell)。仔细重新输入Publisher类后,一切正常。