Django Post.objects.all()不显示对象

时间:2017-11-06 08:54:29

标签: django

嗨,我正在学习基于Django女孩教程的Django。 当我试图在python shell中显示所有Post对象时,我陷入了第9章。

  

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

应该显示

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

但是显示

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

我试图找到解决方案但是所有人都说错误的原因在于models.py。 我检查了我的 blog \ models.py ,看起来很不错。它包含缩进的__str__方法。 我使用的是Python 3.6.0和Dajngo 1.11.6。请帮我     我的blog / models.py是以下

from django.db import models
from django.utils import timezone

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

1 个答案:

答案 0 :(得分:4)

检查您的模型类。类和函数都是相同的对齐方式。它应该是

from django.db import models
from django.utils import timezone

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