Как использовать множественный select2 в форме django crispy?
У меня есть существующая хрустящая форма. Я хочу использовать django-select2 для замены существующего мультиселекта полем Select2 с максимальным количеством двух вариантов выбора. Я знаю из этого поста, что мне нужно включить 'data-maximum-selection-length' в качестве атрибута виджета.
Вот код поля, которое я добавляю:
forms.ModelMultipleChoiceField(
required=True,
queryset=MyModel.objects.all(),
widget=s2forms.Select2MultipleWidget(attrs={'data-maximum-selection-length': 2}))
Я включил {{ form.media.css }} в голову моего шаблона и {{ form.media.js }} перед тегом. Edit: Я включил path('select2/', include('django_select2.urls')), в мой urls.py.
Поле не отформатировано для отображения в виде выпадающего списка select2, оно выглядит как стандартное поле multiselect.
Вот что я надеюсь получить:
... вот как это выглядит:

Буду благодарен за любые идеи!
Ссылки:
- django-select2 docs
- django ModelMultipleChoiceField docs
- django crispy forms docs
Это не ответ на вышеупомянутый вопрос, но я включаю это в качестве альтернативного решения первоначальной проблемы, которую я реализовал.
По сути, я обошел проблему хрустящих форм, вставив нужное мне поле Select2 через HTML в виде набора полей.
model_ids = [str(ModelObject.id) for obj in ModelInput]
model_ids_string = "".join([f'<option value={model_id}>{model_id}</option>' for model_id in model_ids])
my_fieldset = Fieldset(
f"""
<div class="controls">
<select id="field_name" name="field_name" required
class="js-states form-control" style="width:100;" multiple>
{model_ids_string}
</select>
</div>""")
dyn_field_set.append(my_fieldset)
Я не собираюсь принимать этот ответ, если у кого-то есть реальное решение, которое все еще использует объект Select2 по назначению.