PRO

Что такое __str__ в модели Django?

Метод __str__ задаёт строковое представление объекта модели. Django использует его, например, в админ-панели, Django shell и при выводе объекта через print().
Подробный ответ

Зачем нужен __str__

__str__ — специальный метод Python, который должен возвращать строку. В Django его обычно добавляют в модель, чтобы объекты отображались понятным названием, а не технической записью вроде Article object (1).

from django.db import models


class Article(models.Model):
    title = models.CharField(max_length=200)

    def __str__(self):
        return self.title

Где это видно

  • в Django admin;

  • в Django shell;

  • при вызове print(article);

  • в отладочных сообщениях и логах.

Что возвращать

Метод должен вернуть строку. Обычно это поле, по которому объект легко узнать: заголовок статьи, имя пользователя, название товара или комбинация нескольких полей.

Как ответить на собеседовании

__str__ задаёт читаемое строковое представление экземпляра модели. Я добавляю его, чтобы объекты понятно отображались в админке и консоли, например по названию или имени.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге