0

DJANGO + Python и ошибка TypeError: coercing to Unicode: need string or buffer, SOMETYPE found

Есть довольно простое решение такой проблемы.

Секрет в том, что мы начисто забываем о том, что если мы ссылаемся на другую таблицу ForeignKey, то для return нужно еще и указать имя поля таблицы, на которую мы ссылаемся.

Например:

class ApprovesTypes(models.Model):
    approve_name = models.TextField(verbose_name='Наименование')
    class Meta:
        verbose_name = "Варианты статусов"
        verbose_name_plural = "Статус"
    def __unicode__(self):
        return u'%s' % self.approve_name

class Approves(models.Model):
    car_id = models.ForeignKey(Comment, related_name='approves', verbose_name='Все статусы данного авто')
    user_id = models.ForeignKey(User, verbose_name='Продавец')
    status_name = models.ForeignKey(ApprovesTypes, verbose_name='Статус проверяющего')
    class Meta:
        verbose_name = "Статус проверяющего"
        verbose_name_plural = "Статусы проверяющих"
    def __unicode__(self):
        return u'%s' % self.status_name

Если посмотреть на последнюю строку модели Approves станет очевидно, что для того, что бы тут не было такой ошибки нужно добавить вконце .approve_name
таким образом строка будет выглядеть return u’%s’ % self.status_name.approve_name иначе он возвращает не текст, а объект.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *