Как использовать optgroups с FilteredSelectMultiple в админке Django?
Я использовал optgroups
на моей странице Django Admin с SelectWidget
, но когда я перешел на FilteredSelectWidget
, они больше не работают. Я заметил, что до загрузки JS для FilteredSelectWidget
у SelectWidget
есть optgroups
, но после загрузки JS они исчезают.
Например, если у меня есть миксин формы следующего вида:
class SelectMixin(forms.ModelForm):
select_field = forms.ModelMultipleChoiceField(
queryset=ModelA.objects.all(),
required=False,
widget=FilteredSelectMultiple("Select Field", is_stacked=False)
)
def __init__(self, *args, **kwargs):
super(SelectMixin, self).__init__(*args, **kwargs)
self.fields['select_field'].choices = (('Group 1' ((1, 'item 1'), (2, 'item 2'))), ('Group 2' ((3, 'item 3'), (4, 'item 4'))))
Это работает, когда widget
установлен в SelectWidget
, но когда он установлен как указано выше, он больше не работает. Несмотря на то, что он по-прежнему генерирует правильные группировки через метод optgroup
.
Похоже, что JS из FilteredSelectWidget
перезаписывает их. Кто-нибудь нашел способ обойти это? Мне нужен виджет выбора, с помощью которого я могу легко отменить выбор, а фильтрация - это приятный бонус.