django-pagination пользователь выбирал записи на странице
Я реализовал django-нумерацию страниц в своем приложении, чтобы позаботиться о нумерации страниц, и это все хорошо. Единственное, что я не могу понять, это как позволить пользователям выбирать определенное значение для записей на странице, например 15, 30, 45, 60, 100 или всех записей.
Как правильно это сделать?
1 ответ
Когда вы создаете Paginator, вы передаете количество записей на странице. Вам нужно получить это значение от пользователя, сохранить его и передать.
Например, это может быть пользовательский параметр - если это так, добавьте его в свой пользовательский параметр Model, соберите его в форму, сохраните его, затем получите модель из базы данных перед созданием Paginator и передайте ее.
Или это может быть просто переменная сеанса, которая устанавливается из элемента на странице - снова, поместите элемент на страницу, используйте его для установки переменной сеанса и передайте его в объект Paginator.
Похоже, это было рассмотрено в этом вопросе:
Гибкая нумерация страниц в Джанго
РЕДАКТИРОВАТЬ: чтение комментария.
Если вы читаете источник,
Тег 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
из строки запроса, дБ или что вы хотите.