Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Выборка нужного значения из имеющегося queryset'а. Как это сделать? [RSS Feed]

#1 Март 19, 2013 12:46:43

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка нужного значения из имеющегося queryset'а. Как это сделать?

Привет.
Есть модель:

class Food(models.Model):
    name = models.CharField()
class Hotel(models.Model):
    name = models.CharField()
    
class MyModel(models.Model):
    food = models.ManyToManyField(Food)
    
class People(models.Model):
    hotel = models.ForeignKey(Hotel)
    mymodel = models.ForeignKey(MyModel)    
Есть запрос:
all = get_list_or_404(
    People.objects.select_related('hotel', 'mymodel').prefetch_related('mymodel__food')

Я получил все записи из модели People и связанные с ними записи.
Теперь у меня появилось название отеля.
Я хочу выбрать запись из модели People, где hotel=моё_название_отеля
Как выбрать из имеющегося кверисета - “all”, запись которая мне нужна?
У меня только такой вариант:
for index, item in enumerate(all):
    if item.hotel.name == моё_название_отеля:
        selected_hotel = item
Хотел сделать:
all.get('моё_название_отеля',None) - но так не работает.

Отредактировано MikaMika (Март 19, 2013 13:06:58)

Офлайн

#2 Март 19, 2013 13:29:41

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

Выборка нужного значения из имеющегося queryset'а. Как это сделать?

all_people=People.objects.select_related('hotel', 'mymodel').prefetch_related('mymodel__food')
in_hotel=all_people.filter(hotel__name=u'Украина')



Офлайн

#3 Март 19, 2013 17:35:24

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка нужного значения из имеющегося queryset'а. Как это сделать?

FishHook, спасибо.

in_hotel = all_people.object.get(hotel__name='крутой_отель') 
Почему так не работает?

Офлайн

#4 Март 19, 2013 17:45:53

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выборка нужного значения из имеющегося queryset'а. Как это сделать?

Я хочу узнать, можно получить нужный объект (я знаю, что он будет один) из queryset'а - “all_people”?
Или результат всегда будет queryset'ом, и можно пользоваться только .filter() и т.д.

Офлайн

#5 Март 19, 2013 19:20:48

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Выборка нужного значения из имеющегося queryset'а. Как это сделать?

MikaMika
Я хочу узнать, можно получить нужный объект (я знаю, что он будет один) из queryset'а - “all_people”?

конечно:
obj = all_people[0]

Отредактировано inoks (Март 19, 2013 19:21:03)

Офлайн

  • Начало
  • » Django
  • » Выборка нужного значения из имеющегося queryset'а. Как это сделать?[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version