Найти - Пользователи
Полная версия: Paginator - почему так долго?
Начало » Pyramid / Pylons / TurboGears » Paginator - почему так долго?
1
baloo
Здравствуйте. Использую в контроллере (ну, и в шаблоне, соответственно), 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()
)
Тогда все это настолько долго обрабатывается, что не дождешь. Несмотря на то, что все на локальной машине. Нельзя ли как-нибудь обойти это? Ну, фетчить не все сразу как-нибудь или еще что?
tombird
передавайте объект запроса вместо списка paginator-у и все будет в порядке
baloo
Простите, не совсем понял. “Передавайте объект запроса вместо списка” - это то, что я указал в первом отрывке кода?
dorian
    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')
baloo
И правда, быстро работает ))) Спасибо за подсказку
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB