1

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

3 回答 3

2

如果您使用的是 Python 3+,那么您应该使用str类型和__str__函数,因为没有unicode类型。可能 Django 文档在这里已经过时了。

我不太确定这一点,所以上面的段落可能也是一派胡言。

于 2013-09-03T17:56:33.363 回答
1

正如@Python Fanboy 所说,这可能是因为您正在运行 python3: 请参见此处

Django 最近才开始支持 py3,所以大多数旧文档可能需要一些更新。

于 2013-09-03T18:13:31.897 回答
0

我正在遵循相同的教程,并且还遇到了有关不正确输出的错误(将unicode () 方法添加到代码后没有实际效果)。 就我而言,问题是 _ unicode _() 方法的缩进不正确。起初我没有注意到这一点,因为重新进入 shell(python manage.py shell)后控制台没有错误。仔细重新键入 Publisher 类后,一切正常。

于 2013-09-18T09:14:32.980 回答