django-pagination пользователь выбирал записи на странице

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

Как правильно это сделать?

1 ответ

Решение

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

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

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

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

Гибкая нумерация страниц в Джанго

РЕДАКТИРОВАТЬ: чтение комментария.

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

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 из строки запроса, дБ или что вы хотите.

Другие вопросы по тегам