Подтвердить что ты не робот

Виджет Django multi-select?

Административный сайт Django использует действительно классный виджет:

enter image description here

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

4b9b3361

Ответ 1

Из docs:

Приложение Django Admin определяет ряд настраиваемых виджетов для календарей, фильтрованных выборов и т.д. Эти виджеты определяют требования к мультимедиа, а Django Admin использует пользовательские виджеты вместо значений по умолчанию для Django. Шаблоны администратора будут включать только те мультимедийные файлы, которые необходимы для визуализации виджетов на любой заданной странице.

Если вам нравятся виджеты, которые использует приложение Django Admin, не стесняйтесь использовать их в своем приложении! Все они хранятся в файле django.contrib.admin.widgets.

В этом случае вам нужен виджет FilteredSelectMultiple. Чтобы использовать его, примените виджет в поле формы следующим образом:

my_field = forms.ModelMultipleChoiceField(queryset=MyModel.objects.all(), widget=FilteredSelectMultiple("verbose name", is_stacked=False))

Не забудьте включить в шаблон формы media, так как в нем должно быть несколько JS файлов.