Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 16, 2012 22:59:33

spec
Зарегистрирован: 2012-09-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, def __unicode__ из другой модели

Создал модель, она связана с дефолтной Users отношением ‘многие ко многим’:

user = models.OneToOneField(User, primary_key=True)
        card_num = models.IntegerField('users card ID')
       # ...
	def __unicode__(self):
    		return User.last_name
То есть в админке хочу чтобы выводилась фамилия юзера, но ее там нет(type object ‘User’ has no attribute ‘last_name’). И вся проблема в том, что card_num - это не единственное “св-во”, их там много и они, в основном, либо int, либо boolean.
Я уже что только не перепробовал, помогите плиз

Офлайн

#2 Окт. 17, 2012 05:40:14

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

Модели, def __unicode__ из другой модели

отношением ‘многие ко многим’:
OneToOneField
Что то мне подсказывает, что OneToOne переводится иначе.
А по сабжу,
return User.last_name
Вы обращаетесь к классу модели, причем cовсем не той,
а надо то обращаться к инстансу
return self.user.last_name



Офлайн

#3 Окт. 17, 2012 10:21:27

spec
Зарегистрирован: 2012-09-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, def __unicode__ из другой модели

да, перепутал, когда топик писал - OneToOneField - один к одному Спасибо, работает
Я вот читал про verbose names - да, все классно отображается, а если

card_num = models.IntegerField('номер карты')
или
 card_num = models.IntegerField(u'номер карты')
Все равно выводит сообщение об ошибке. Тогда использовать ugettext_lazy или существует что-то полегче?

Офлайн

#4 Окт. 17, 2012 10:32:43

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

Модели, def __unicode__ из другой модели

Последнее сообщение не понял. Какая ошибка то?



Офлайн

#5 Окт. 17, 2012 15:50:55

spec
Зарегистрирован: 2012-09-29
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, def __unicode__ из другой модели

SyntaxError: Non-ASCII character ‘\xd0’ in file /path/models.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Хотя в самой первой строке # -*- coding: utf-8 -*-

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version