В раскрывающемся списке Django Topic отображается объект Topic(1), но не его название
В раскрывающемся списке 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