嘿,我目前正在阅读Django女孩教程http://tutorial.djangogirls.org/en/django_orm/README.html
我正在尝试使用
在python shell中显示我的所有Post对象from blog.models import Post
Post.objects.all()
应该显示
[<Post: Title>, <Post: Title2>]
但是显示
[<Post: Post object>, <Post: Post object>]
它只是说&#34;发布对象&#34;而不是标题。是什么原因?我一直在完全按照教程,不能理解它为什么会这样显示它。当它说&#34;发布对象&#34;时,很难组织所有的帖子。对于他们所有人。
我使用的是Python 3.4.1版和Djangon 1.8.1版。
答案 0 :(得分:4)
在Django Girls Tutorial的Chapter 9中,有关于为Post
模型创建__str__
方法的说明,如下所示:
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
如果仍然无法让它工作,请更新您的问题并加入Post
课程。您可能在缩进(空格数)时犯了错误。
答案 1 :(得分:3)
<强> models.py 强>
class Post(models.Model):
...
# python 2.x
def __unicode__(self):
return self.title
# python 3.x
def __str__(self):
return self.title
答案 2 :(得分:0)
通过以下命令
Post.objects.all()
您正在从您的数据库获取所有帖子(在您的情况下,即2)
这就是为什么显示
[<Post: Post object>, <Post: Post object>]
而不是
[<Post: Title>, <Post: Title2>]
获取以下输出
你应该试试
方法
Post.objects.get(PK = 1)
其中pk是帖子的ID
方法
Post.objects.filter(ID = 1)
其中id是帖子的ID