Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Модели, выборка части результатов для части модели. [RSS Feed]

#1 Июнь 13, 2010 19:48:43

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

class Groups(models.Model):
r = models.IntegerField(max_length=11, primary_key=True)
rh = models.IntegerField(max_length=11)
rp = models.IntegerField(max_length=11)
types = models.IntegerField(max_length=2)
name = models.CharField(max_length=50)
status = models.IntegerField(max_length=1)

def get_name(self):
return '%s' % self.name

def __unicode__(self):
return '%d %s' % (self.r, self.name)
Хочется получить список груп по определенному фильтру, для чего делаю
groups = Groups.objects.all().filter(rh = 1)
и получаю строчками что нужно. Но оно же не приемлемо и нужены списки.
Т.е. хочется что то в духе
def get_groups_id_name(self):
group = (self.r, self.name)
return group
Но для выше описанное не применить для получения списка т.к. с этим методом класса сможет работать только object.get() а он возвращает только одно значение или ексцепшен :(
Как получить, то что хочется?



Офлайн

#2 Июнь 13, 2010 21:30:18

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

ex
Как получить, то что хочется?
Откровенно говоря, что вам хочется совсем не понятно.
ex
Но оно же не приемлемо и нужены списки.
Зачем вам списки?
ex
Но для выше описанное не применить для получения списка т.к. с этим методом класса сможет работать только object.get()
Что вам мешает вызывать этот метод у объектов списка, который вернул фильтр?



Офлайн

#3 Июнь 13, 2010 21:51:55

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

Daevaorn
ex
Но для выше описанное не применить для получения списка т.к. с этим методом класса сможет работать только object.get()
Что вам мешает вызывать этот метод у объектов списка, который вернул фильтр?
Допусти записей в таблице 100 мульенов, не хочется для такой выборки иметь 10-ти этажное здание под планки RAM. Шуткую конечно, просто хочется выборку списка груп решать одним запросом.

Daevaorn
ex
Как получить, то что хочется?
Откровенно говоря, что вам хочется совсем не понятно.
ex
Но оно же не приемлемо и нужены списки.
Зачем вам списки?
Хочется белого и мягкого. Списки для удобства дальнейшего отфуболивания на вывод в темплейт, а не разбивания строки “126572 Моя группа для ча-ча-ча с планетарными спутниками Юпитера”

Впринципе мне хватило решения проблемы самописным запросом к базе, но хотелось бы решить эту задачу не выходя за рамки ORM.



Офлайн

#4 Июнь 13, 2010 22:33:57

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

До сих пор не понимаю, чего вы хотите. Лучше бы вместе ребячества описали задачу конкретнее.

Чем вам не подходит такой способ?

groups = Groups.objects.all().filter(rh=1)
for group in groups:
print group.r, group.name
Можно ещё only/defer использовать для ограничения полей.

Зачем вам какие-то списки? Почему в шаблон вы не хотите передавать объекты?



Офлайн

#5 Июнь 13, 2010 22:46:14

Norecces
От:
Зарегистрирован: 2010-04-13
Сообщения: 41
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

groups.object.all().filter().values_list()



Офлайн

#6 Июнь 14, 2010 20:31:20

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

Norecces
groups.object.all().filter().values_list()
Премного благодарен



Офлайн

#7 Июнь 14, 2010 20:32:47

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Модели, выборка части результатов для части модели.

Daevaorn
До сих пор не понимаю, чего вы хотите. Лучше бы вместе ребячества описали задачу конкретнее.

Чем вам не подходит такой способ?
groups = Groups.objects.all().filter(rh=1)
for group in groups:
print group.r, group.name
Можно ещё only/defer использовать для ограничения полей.

Зачем вам какие-то списки? Почему в шаблон вы не хотите передавать объекты?
Вы меня не понимаете потому, что знаете больше и для Вас оно очевидно :)
Ответ я таки получил



Офлайн

  • Начало
  • » Django
  • » Модели, выборка части результатов для части модели.[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version