Как интегрировать поле с несколькими вариантами выбора в выпадающем списке в Django

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

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

Хотелось бы услышать совет, который поможет. Буду очень признателен за ваше время и помощь!!

Множественно выбранное поле в раскрывающемся списке

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

model.py


person Ken Choi    schedule 08.02.2019    source источник
comment
Мы не сможем помочь, пока не узнаем, как выглядят ваши модели. И, если возможно, включите файл forms.py в свой вопрос.   -  person Ahtisham    schedule 08.02.2019
comment
@Ahtisham привет, спасибо за ваш ответ. Прикрепил модель к посту. Что касается form.py, у меня пока нет идеи реализовать его.   -  person Ken Choi    schedule 08.02.2019


Ответы (1)


Вы можете использовать MultipleChoiceField с виджетом CheckboxSelectMultiple, чтобы создать что-то вроде этого:

class CustomWidgetForm(forms.Form):

    SOME_CHOICES = (
        (1, "Havana"),
        (2, "New York"),
        (3, "Changai"),
        (4, "London"),
    )

    multiselect = forms.MultipleChoiceField(choices=SOME_CHOICES, widget=forms.CheckboxSelectMultiple())

Это отобразит поле множественного выбора следующим образом:

введите здесь описание изображения

Затем вы можете применить пользовательский шаблон к виджету CheckboxSelectMultiple, чтобы предоставить некоторые js и отобразить виджет так, как вы хотите.

Другой подход заключается в использовании поля множественного выбора по умолчанию в сочетании с подключаемым модулем Jquery, например JQuery.sumoselect.

У упомянутого плагина есть возможность сделать окно выбора таким:

введите здесь описание изображения

Есть много возможностей, но наверняка вам придется задействовать JS.

person Raydel Miranda    schedule 08.02.2019