2013-07-31 3 views
1

Я нуб Джанго и есть ситуация, которая выходит за рамки основной документации и т.д.Как отслеживать флажки с Django и бесконечную разбивку на страницы?

Я обновлении заказа веб-страницу, которая имеет форму структурирована следующим образом:

  • несколько текстовых полей и т.д. для сбора общей информации (имя, дата и т. д.)

  • две отдельные таблицы для выбора (через флажок) каталогов, которые генерируются/управляются с помощью бесконечной_пагинации. Каждая таблица может иметь тысячи записей, следовательно, бесконечная_пагинация. Первый столбец в каждой таблице - это флажок со значением = catalog.id.

  • текстовое поле, в котором пользователь может вручную ввести идентификаторы каталога

  • кнопку отправки

Я не знаю, как следить за то, что выбрал пользователь в двух страничных таблиц, так как флажки отмечены при выборе другой страницы. Кроме того, когда пользователь переворачивается назад и вперед между страницами, проверенные ранее каталоги должны быть повторно проверены (поскольку проверенное состояние не поддерживается). Я также не уверен, какой инструмент (ы) использовать, чтобы справиться с этим.

Моя мысль обновить список идентификаторов каталога, чтобы использовать JavaScript (с которым у меня есть минимальный опыт) всякий раз, когда флажок/снята и: - и приложить этот список к форме или - обновить переменную форма или - отправить как переменную отдельно от формы, в зависимости от того, что возможно/имеет больше смысла.

Я надеюсь, что сохранение списка идентификаторов каталогов возможно, потому что следующая итерация этой формы, скорее всего, будет включать некоторую фильтрацию, поэтому я пытаюсь разработать решение, которое не нужно будет перерабатывать позже.

Я просмотрел много сообщений, но я считаю, что самые близкие решения оказываются бесполезными из-за бесконечной_пагинации.

Сообщите мне, если потребуется дополнительное разъяснение. Спасибо заранее за любые предложения.

UPDATE

Я попытался с помощью JavaScript для хранения идентификаторов каталога в массиве, когда флажок установлен. Это не работает, когда пользователь выбирает другую страницу в разбивке на страницы. Массив проверенных идентификаторов каталога теряется, когда страница «перезагружается».

ответ

1

Я тоже сталкиваюсь с этой проблемой. Я обрабатываю это, записывая отмеченные элементы в localStorage, чтобы они переносились на страницы 2, 3 и т. Д., А также отображались как уже проверенные, когда вы возвращаетесь на страницу 1. Затем каждый раз, когда страница загружается, либо найдите и проверьте существующий флажок или создайте скрытый ввод с соответствующим именем и значением и добавьте его в основную форму.

var selected_items = [] 

function add_item_to_checkbox(item) { 
    localStorage.setItem('selected_items', JSON.stringify(selected_items)); 
checkbox.on("click", add_item_to_checkbox); 

Bahh ... Просто посмотрите на мой jsfiddle это легче читать и да. Мне не нужно вводить JS в текстовое поле в stackoverflow.

Адрес: javascript minus a few things that are specific to my code. Я уверен, что он может быть улучшен, но он отлично работает для моего приложения.

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