В раскрывающемся списке Django Topic отображается объект Topic(1), но не его название

example of whats showing up on the site В раскрывающемся списке Django Topic отображается объект Topic(1), но не имя объекта

class Topic(models.Model):
    """A topic the user is learning about."""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    
class Entry(models.Model):
    """Something specific learned about a topic"""
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        """Return a simple string representation of the entry."""
        return f"{self.text[:50]}..."

Выше приведен код в models.py, я очень хорошо знаком с django, но я хорошо понимаю python. Не могу понять, почему при переходе на сайт название темы не появляется, а вместо него написано topic object(1) --> topic object(2)

Вам нужно вернуть строковое представление модели Topic. Вы всегда должны возвращать хорошее, человекочитаемое представление модели из метода __str__().

Добавьте это в модель Topic так же, как и в Entry:

def __str__(self):
  """Return a string representation of the topic."""
  return self.text

Смотрите https://docs.djangoproject.com/en/5.0/ref/models/instances/#str

Вернуться на верх