Skip to main content
 首页 » 编程设计

python之为什么我的 "def __str__(self)"函数在 Django 中不起作用

2025年05月04日21落叶无声

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):

InteractiveConsole

请您参考如下方法:

缩进似乎是错误。我在这里忽略了那些星号,因为它们不应该在那里。确保您的函数位于具有正确缩进的 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>]>