Django Jquery: в зависимости от выбора отобразить дополнительные параметры выбора - PullRequest
2 голосов
/ 10 марта 2012

Пользователь должен выбрать тип транспортного средства, затем на основе своего выбора он затем имеет варианты выбора модели транспортного средства, а затем на основе этого выбора он будет иметь возможность просмотра определенных цветов, доступных для этой модели.

Существуют отдельные модели django для каждого транспортного средства, модели и цвета, где каждый экземпляр транспортного средства имеет много моделей (поле «многие ко многим»), а каждая модель имеет цвета (поле «многие ко многим»).

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

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 11 марта 2012

Мой подход заключается в использовании ajax для динамического изменения содержимого полей выбора. Есть много способов реализовать это. Вот один ...

  • Создать 3 поля выбора (автомобиль, модель, цвет)
  • Заполните первый со всеми пустыми записями плюс все транспортные средства
  • Перехват события onchange для автомобиля и модели и создание соответствующих функций JavaScript.

Вот код sudo для функции vehicleChange:

  • Очистить все опции выбора модели
  • Очистить все варианты выбора цвета
  • получить параметры выбора модели с сервера, используя ajax
  • заполнить поле выбора модели.

Вот код sudo для функции modelChange:

  • Очистить выбор цвета
  • получить параметры выбора цвета с сервера, используя ajax
  • заполнить поле выбора цвета.

Так что теперь происходит:

  • Поскольку вы используете ajax, ваша страница не будет обновляться или перенаправляться.
  • Ваша модель "модель" и "цвет" остаются максимально простыми
  • Ваш взгляд на "модель" и "цвет" становится очень маленьким. Одно возможное представление даст что-то вроде:

Чтобы изменить параметры в полях выбора, вы можете использовать jquery, чтобы захватить поле выбора и заменить html результатами вызова ajax.

0 голосов
/ 11 марта 2012

Вы можете использовать dajax, библиотеку ajax для djangoНа их сайте у них даже есть очень похожий пример -> http://www.dajaxproject.com/forms/

...