Django公司Post.objects.all()不显示对象属性

2024-04-28 14:44:51 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,我现在正在学习Django女孩教程http://tutorial.djangogirls.org/en/django_orm/README.html

我试图在pythonshell中使用

from blog.models import Post
Post.objects.all()

它应该显示出来

^{pr2}$

但它却显示了

[<Post: Post object>, <Post: Post object>]

它只是说“Post object”而不是标题。原因是什么?我一直在严格遵循教程,不明白它为什么会这样显示。当它为所有的帖子写上“Post object”时,很难组织所有的帖子。在

我使用的是python3.4.1和Djangon版本1.8.1。在


Tags: djangoorghttpobjecthtmlorm教程post
3条回答

模型.py

class Post(models.Model):
    ...
    # python 2.x
    def __unicode__(self):
        return self.title

    # python 3.x
    def __str__(self): 
        return self.title

在Django Girls教程的Chapter 9中,有一些为您的Post模型创建^{}方法的说明,如下所示:

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类。缩进(空格数)可能出错。在

通过以下命令

Post.objects.all()

你从你的数据库中得到所有的帖子(在你的例子中是2)

这就是为什么它会出现

^{pr2}$

而不是

[<Post: Title>, <Post: Title2>]

得到以下输出

你应该试试

  1. 方法

    在Post.objects.get(pk=1)

其中pk是帖子的id

  1. 方法

    在Post.objects.filter(id=1)

其中id是帖子的id

相关问题 更多 >