#django #django-forms #django-admin
Вопрос:
Я использовал optgroups
на своей странице администратора Django с a 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
перезаписывает их. Кто-нибудь нашел способ обойти это? Мне нужен виджет выбора, с помощью которого я могу легко отменить выбор, и фильтрация-приятный бонус.