2009-12-11 5 views
1

Я применил django-pagination в своем приложении, чтобы позаботиться о разбиении на страницы, и все хорошо. Единственное, что я не могу понять, - это разрешить пользователям выбирать определенное значение для записей на странице, например. 15, 30, 45, 60, 100 или все записи.django-pagination пользователь выбрал записи на страницу

Каков правильный путь?

ответ

3

Когда вы создаете Paginator, вы передаете количество записей на странице. Вы должны получить это значение от пользователя, сохранить его и передать его.

Например, это может быть пользовательская настройка - если да, добавьте ее в свою пользовательскую настройку Model, соберите ее в форме, сохраните его, затем получите модель из db перед созданием Paginator и передайте ее.

Или это может быть просто переменная сеанса, заданная из элемента на странице - снова, поместите элемент на страницу , используйте его для установки переменной сеанса и передайте его в объект Paginator.

Похоже, она была покрыта в этом вопросе:

Flexible pagination in Django

EDIT: Чтение комментария.

Если вы читаете источник,

http://code.google.com/p/django-pagination/source/browse/trunk/pagination/templatetags/pagination_tags.py

Тег, autopaginate принимает ряд или переменную шаблона.

if isinstance(paginate_by, int): 
     self.paginate_by = paginate_by 
    else: 
     self.paginate_by = template.Variable(paginate_by) 

Итак, попробуйте передать в переменной шаблона с вашей точки зрения 'page_by':10 и использования {% autopaginate list page_by %} - то вы можете установить page_by из строки запроса, дБ, или что вы хотите.

+0

Я уже посмотрел на этот вопрос ... исправьте меня, если я ошибаюсь, но этот подход подходит для стандартного Django paginator. Я использую django-pagination (http://code.google.com/p/django-pagination/) приложение – Stephen

+0

спасибо Лу .... должно было знать twas это просто :) – Stephen

Смежные вопросы