Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > [Django] Как получить нужное поле из модели?


Автор: Kotakota 18.5.2011, 07:04
Привет.
Есть модель:
Код

class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()

def __unicode__(self):
return self.name

Запускаю python manage.py shell
>>> from books.models import Publisher
Publisher.objects.all()

Получаю сет из полей: name.
А что если мне нужно вывести поле "adress", определенное в модели Publisher.
Как это сделать? Ведь в методе __unicode__ вывод только поля name?
Есть идея передавать второй параметр в метод __unicode__, который будет определять необходимое поле!
Или метод __unicode__ вообще не нужен? Хотя на http://djbook.ru/ch05s09.html всесторонне советует его применять!

Пробовал вот так:
Publisher.objects.filter(city)
Выходит ошибка.

Другие методы содержащиеся в Publisher.objects. не подходят.
Как правильно сделать? 

Автор: Daevaorn 18.5.2011, 08:16
Цитата(Kotakota @  18.5.2011,  08:04 Найти цитируемый пост)
Получаю сет из полей: name.

Вы получаете объекты со всеми полями.
Цитата(Kotakota @  18.5.2011,  08:04 Найти цитируемый пост)
А что если мне нужно вывести поле "adress", определенное в модели Publisher.

Код

Publisher.objects.all()[0].address

Цитата(Kotakota @  18.5.2011,  08:04 Найти цитируемый пост)
Publisher.objects.filter(city)
Выходит ошибка.

А с чего вы взяли что это будет работать?
Цитата(Kotakota @  18.5.2011,  08:04 Найти цитируемый пост)
Другие методы содержащиеся в Publisher.objects. не подходят.

Это не правда
http://docs.djangoproject.com/en/dev/ref/models/querysets/#values
http://docs.djangoproject.com/en/dev/ref/models/querysets/#values-list

Автор: Kotakota 18.5.2011, 10:47
Daevaorn, спасибо!

Цитата(Daevaorn @  18.5.2011,  08:16 Найти цитируемый пост)

А с чего вы взяли что это будет работать?

С того, что я новичок в Django smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)