почему моя функция "def __str __ (self)" не работает в django - PullRequest
2 голосов
/ 06 октября 2019
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

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Похоже, отступ - это ошибка. Я игнорирую эти звездочки здесь, потому что они не должны быть там. Убедитесь, что ваша функция находится внутри класса 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>]>
0 голосов
/ 06 октября 2019

вам нужно определить __repr__ вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...