пятница, 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
И вуаля, в админке выводятся нормальные имена персон:-)

3 комментария:

Анонимный комментирует...

Спасибо!

Анонимный комментирует...

Спасибо огромно, очень помог...

Sergey комментирует...

Шаблоны для WordPress помогут вам придать сайту индивидуальность и добавить функционал, причем скачать их можно совершенно бесплатно.