from django.db import models
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
***def __str__(self):
return self.title***
当我在此行输入 Article.objects.all()时,它应该显示我在数据库中拥有的标题。但是,为什么只显示<Article: Article object>
呢?尽管我正确地写了def __str__(self):
。
答案 0 :(得分:1)
缩进似乎是错误的。我忽略这里的那些星号,因为它们不应该在那里。确保您的函数位于具有正确缩进的Article类中。
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField()
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
这是控制台输出:
(InteractiveConsole)
>>> from about.models import Article
>>> Article.objects.all()
<QuerySet [<Article: This is article 1>, <Article: This is article 2>, <Article: This is article 3>]>
答案 1 :(得分:0)
我也有这个错误,但我可以解决。
方法是
类代码和功能代码之间的空格导致此错误类型。 如果您想知道,请再次输入“ python manage.py makemigrations”和“ python manage.py migration”。您将看到错误消息结尾为 ” def str (自己): ^ IndentationError:unindent与任何外部缩进级别都不匹配”
如果键入命令“ python manage.py runserver”,您将看到错误消息以“没有使用'admin'卸载应用程序标签”结尾。
显示不同的错误消息,但是,您可以按照我的步骤解决此错误。
答案 2 :(得分:-3)
您需要改为定义__repr__