Django unicode方法不起作用

时间:2013-09-03 08:58:43

标签: django unicode django-models

当我在模型部分中定义一个类时,我会编写一个__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

3 个答案:

答案 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类后,一切正常。