Django - лучший способ объединить нумерацию страниц с фильтрацией и запросом. POST - как stackoverflow - ajax? - PullRequest
7 голосов
/ 05 января 2010

Я хочу совместить нумерацию страниц с фильтрацией. Поскольку у меня много фильтров, я не хочу отправлять их по запросу GET, поскольку URL-адреса становятся действительно ужасными.

Поскольку разбиение на страницы в django использует GET-запрос для передачи параметров страницы, я не знаю, как я могу объединить эти два подхода.

Есть идеи?

Отличным дополнением было бы: Как я могу совместить этот подход с сортировкой таблиц? : -)

Edit:

На самом деле это должно работать как разбиение на страницы stackoverflow - пользовательские вопросы. Если пользователь нажимает на страницу номер один, отображается правильная страница, без отображения параметров получения в URL.

Это URL, который называется. https://stackoverflow.com/api/userquestions.html?page=2&pagesize=10&userId=237690&sort=Recent

Но URL, отображаемый в браузере, аккуратный и короткий. Кажется, чтобы быть AJAX. У кого-нибудь есть идеи, как это реализовать? :)

Если URL-адрес не отображается в адресной строке браузера, мне все равно, красивый он или нет.

Редактировать: Решение:

Сделать обновление ajax со всеми параметрами фильтра, передаваемыми в представление. Это должно помочь вам начать реализацию ajax для вашего сайта: ссылка

Таким образом, параметры GET никогда не отображаются в адресной строке.

Ответы [ 4 ]

5 голосов
/ 05 января 2010

Вы проверили приложение на paginate для django? это может вам сильно помочь, используйте его постоянно: D

http://code.google.com/p/django-pagination/

2 голосов
/ 30 мая 2013

Рассматривали ли вы django-tables2 ? Он дает вам таблицы стиля django-admin без необходимости самим писать логику.

0 голосов
/ 28 февраля 2010

Я нашел два решения:

  1. Вместо использования просто гиперссылок используйте его внутри формы POST, у меня сейчас нет примера, но я помню, что использовал его для функций REST в Ruby on rails
  2. Сохранение информации запроса в сеансе.

Надеюсь, эта помощь.

0 голосов
/ 05 января 2010

возможно вы можете использовать urs, что-то вроде:

http://oursite.com/something/filter1/filter2/3/

Документ -> http://docs.djangoproject.com/en/1.1/topics/http/urls/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...