嗨,我正在学习基于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
答案 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