Есть довольно простое решение такой проблемы.
Секрет в том, что мы начисто забываем о том, что если мы ссылаемся на другую таблицу 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 иначе он возвращает не текст, а объект.