Уведомления

Группа в Telegram: @pythonsu

#1 Май 1, 2009 07:56:07

baloo
От:
Зарегистрирован: 2008-05-13
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Paginator - почему так долго?

Здравствуйте. Использую в контроллере (ну, и в шаблоне, соответственно), paginator. Контролер выглядит следующим образом:

    def list(self):
page = request.params.get('page', 1)
insured_q = meta.Session.query(model.Insured)
insured = insured_q.filter_by(fam=u'Иванов').all()

c.paginator = paginate.Page(
insured,
page = page,
items_per_page=30,
url_args = c.url_args,
)
return render('insured/list.mako')
Как видим, идет запрос всех застрахованных (Insured) по фамилии Иванов.
А ежели запросить всех (всего около 70 000 людей в таблице, то есть использовать строку
 insured = Session.query(Insured).all()
)
Тогда все это настолько долго обрабатывается, что не дождешь. Несмотря на то, что все на локальной машине. Нельзя ли как-нибудь обойти это? Ну, фетчить не все сразу как-нибудь или еще что?



Офлайн

#2 Май 1, 2009 12:55:14

tombird
От:
Зарегистрирован: 2007-05-16
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

Paginator - почему так долго?

передавайте объект запроса вместо списка paginator-у и все будет в порядке



Офлайн

#3 Май 1, 2009 21:00:03

baloo
От:
Зарегистрирован: 2008-05-13
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Paginator - почему так долго?

Простите, не совсем понял. “Передавайте объект запроса вместо списка” - это то, что я указал в первом отрывке кода?



Офлайн

#4 Май 1, 2009 21:41:06

dorian
От:
Зарегистрирован: 2006-05-18
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Paginator - почему так долго?

    def list(self):
page = request.params.get('page', 1)
insured_q = meta.Session.query(model.Insured)
insured = insured_q.filter_by(fam=u'Иванов')#.all()

c.paginator = paginate.Page(
insured,
page = page,
items_per_page=30,
url_args = c.url_args,
)
return render('insured/list.mako')



Офлайн

#5 Май 2, 2009 13:04:29

baloo
От:
Зарегистрирован: 2008-05-13
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Paginator - почему так долго?

И правда, быстро работает ))) Спасибо за подсказку



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version