2017-02-19 20 views
0

此代码是从models.py在我的应用程序称为文章Django的interactiveshell在对象的形式回报模型对象,而不是作为字符串

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>]> 

每当我调用Article.objects.all()方法时,它会以对象形式返回标题。 从文档unicode方法必须返回字符串形式中的实际标题。

我是新来的Django,我已经尝试了很多更改unicode方法,但似乎没有任何工作。感谢您提前

这里是我得到

from article.models import Article 
>>> Article.objects.all() 
<QuerySet [<Article: Article object>, <Article: Article object>, <Article: Article object>]> 

和输出的输出,我想

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

你使用p ython 2或3?如果您正在使用python 3,请使用__str __()方法而不是__unicode __()。 –

+0

稍微有些背景信息:[python-str-versus-unicode](http://stackoverflow.com/questions/1307014/python-str-versus-unicode) – Nrzonline

回答

1

您需要高清更改__unicode__(self):def __str__(self):统一版本中使用Python2和str in Python3

相关问题