Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 16, 2014 19:21:59

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

__unicode__

class Category(models.Model):
  name_category=models.CharField(max_length=15,verbose_name='Name')
  yes_category=models.NullBooleanField(verbose_name='Name2')
  def __unicode__(self):
    return self.name_category
class CategoryGo(models.Model):
  option=models.ForeignKey(Category)
  name_category=models.CharField(max_length=15)
  yes_category=models.BooleanField()
  def __unicode__(self):
    return self.name_category+'+'+self.option

Можна ли сделать чтобы не возникало ошибки с self.option?

Офлайн

#2 Окт. 16, 2014 19:32:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

__unicode__

Какая ошибка возникает тебе западло сказать, да?


P.S. можно,

return self.name_category+ '+'  +self.option if self.option else ""



Офлайн

#3 Окт. 16, 2014 19:35:35

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

__unicode__

Вот оно coercing to Unicode: need string or buffer, Category found

Офлайн

#4 Окт. 16, 2014 21:22:11

N..E.M
Зарегистрирован: 2014-10-15
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

__unicode__

тогда

return self.name_category+ '+'  +self.option.name_category if self.option else ""

Офлайн

#5 Окт. 16, 2014 23:00:42

Rebra4
Зарегистрирован: 2012-06-30
Сообщения: 132
Репутация: +  0  -
Профиль   Отправить e-mail  

__unicode__

Спасибо работает

Офлайн

#6 Окт. 17, 2014 09:12:17

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

__unicode__

имхо, лучше так

return u'{0} {1}'.format(self.name_category, self.option)

option у CategoryGo обязательный же параметр, зачем его проверять?

Офлайн

#7 Окт. 17, 2014 10:06:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

__unicode__

ilnur
имхо, лучше так
print u'{0} {1}'.format("cccd", None)
>>> cccd None
негуд же



Офлайн

#8 Окт. 17, 2014 11:28:10

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

__unicode__

option не None же?. он же обязательный?

Офлайн

#9 Окт. 17, 2014 11:48:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

__unicode__

ilnur
option не None же?. он же обязательный?
А что там у него __unicode__ возвращает мы не знаем, вдруг None



Офлайн

#10 Окт. 17, 2014 11:53:44

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

__unicode__

ну тогда давайте проверять результат каждого метода, и будет куча ифов.
это уже проблемы Category.
имхо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version