Показаны сообщения с ярлыком django. Показать все сообщения
Показаны сообщения с ярлыком django. Показать все сообщения

пятница, 20 декабря 2013 г.

Python 3.3, Django 1.6 - def __unicode__(self) не работает, в админке выводятся [table name] object

Столкнулся с тем, что в Python3.3 и Django 1.6 в админке, не смотря на использование метода __unicode__(self) в классах моделей, не выводится имя модели. Например:
class Person(models.Model):
    name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.name
В таком случае в админке выводилось Person object вместо name.
Оказывается, в Python 3 вместо метода __unicode__ отныне используется __str__.
Поэтому, заменяем __unicode__ на __str__:
class Person(models.Model):
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name
И вуаля, в админке выводятся нормальные имена персон:-)