WD5 - разработка сайтов

Переопределение def __str__(self) в модели

Переопределение def __str__(self) или def __unicode__(self)

Переопределение производится не в файле модели, а в файле админки admin.py.

Пример переопределения на стандартном приложении django sites

from django.contrib.sites.models import Site
def site_unicode(self):
    return '%s' % (self.name,)

Site.__str__ = site_unicode
  1. Импортировали модель
  2. Для удобства работы написали функцию, которая возвращает в данном случае только поле name
  3. Переопределили метод __str__ модели Site

Если используется только одно поле, можно упростить код до

from django.contrib.sites.models import Site
Site.__str__ = self.name
None