Django jQuery: на основе выбора, отображение дополнительных вариантов выбора

StackOverflow https://stackoverflow.com//questions/9649529

Вопрос

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

Есть отдельные модели Django для каждого из автомобилей, модели и цвета, где каждый экземпляр автомобиля имеет много моделей (многие на многие поля), и каждая модель имеет цвета (многие для многих полей).

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

Любые идеи?

Это было полезно?

Решение

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

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

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

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

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

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

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

          .
        • , потому что вы используете AJAX, ваша страница не будет обновляться или перенаправлять.
        • Ваша модель для "модели" и "цвет" остается максимально простыми, насколько это возможно
        • Ваш вид на «Модель» и «Цвет» становятся очень маленькими. Один из возможных представлений даст что-то вроде:

          <значение опции="красный"> красный

          <Опция Значение="Белый"> Синий


          <Опция Значение="синий"> синий

          Чтобы изменить параметры в полях выбора, которые вы можете использовать jQuery, чтобы захватить поле выбора и заменить HTML с результатами вызова AJAX.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top