Python Django interactiveshell以对象形式而不是字符串形式返回模型对象

Python Django interactiveshell以对象形式而不是字符串形式返回模型对象,python,django,python-3.x,Python,Django,Python 3.x,这段代码来自我名为article的应用程序中的models.py from django.db import models # Create your models here. class Article(models.Model): title = models.CharField(max_length=200) body = models.TextField() pub_date = models.DateTimeField('date published')

这段代码来自我名为article的应用程序中的models.py

from django.db import models

# Create your models here.

class Article(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    pub_date = models.DateTimeField('date published')
    likes = models.IntegerField()


    def __unicode__(self):
        return self.title
我在数据库中添加了3个对象,如下所示

>>> from django.utils import timezone
>>> a = Article(title = "Test 1", body = "blah blah blah " ,pub_date=timezone.now(),likes=0)
>>> a.save()
>>> a.id
1
>>> a = Article(title = "Test 2", body = "blah blah blah " ,pub_date=timezone.now(),likes=0)
>>> a.save()
>>> a.id
2
>>> a = Article(title = "Test 3", body = "blah blah blah " ,pub_date=timezone.now(),likes=0)
>>> a.save()
>>> a.id
3
>>> Article.objects.all()
<QuerySet [<Article: Article object>, <Article: Article object>, <Article: Article object>]>
来自django.utils导入时区的
>>
>>>a=文章(title=“Test 1”,body=“blah blah blah blah”,pub_date=timezone.now(),likes=0)
>>>a.保存()
>>>身份证
1.
>>>a=文章(title=“Test 2”,body=“blah blah blah blah”,pub_date=timezone.now(),likes=0)
>>>a.保存()
>>>身份证
2.
>>>a=文章(title=“Test 3”,body=“blah blah blah blah”,pub_date=timezone.now(),likes=0)
>>>a.保存()
>>>身份证
3.
>>>第条.对象.全部()
每当我调用Article.objects.all()方法时,它都会以对象形式返回标题。 从文档中,unicode方法必须以字符串形式返回实际标题

我是Django的新手,我尝试了很多更改unicode方法,但似乎没有任何效果。先谢谢你

这是我得到的输出

 from article.models import Article
>>> Article.objects.all()
<QuerySet [<Article: Article object>, <Article: Article object>, <Article: Article object>]>
from article.models导入文章
>>>第条.对象.全部()
以及我想要的输出

<QuerySet [<Article: Article Test 1>, <Article: Article Test 2>, <Article: Article Test 3>]>


您需要将def
\uuuu unicode\uuuuuuuuuuuuuuuself:
更改为
def\uuuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuself:
因为在Python2和Python3中使用了unicode版本?如果您使用的是python 3,请使用_str__()方法,而不是_unicode__()