django-autocomplete-light
django-autocomplete-light copied to clipboard
Correctly render selected choice for ListSelect2 grouped fields
trafficstars
ListSelect2 does not correctly render the selected choices when used with groups.
This snippet works for groups but I did not make a PR as I'll let the way to detect or declare grouped vs non-grouped to you.
class LgrGroupedListSelect2(autocomplete.ListSelect2):
def filter_choices_to_render(self, selected_choices):
# dal.widget.WidgetMixin.filter_choices_to_render does not handle correctly grouped lists
ch = []
for group in self.choices:
c = [c for c in group[1] if str(c[0]) in selected_choices]
ch.extend(c)
self.choices = ch
Dois it work better with Select2GroupListView ?
https://django-autocomplete-light.readthedocs.io/en/master/api.html#dal_select2.views.
I'm using Select2GroupListView to get the list of values to display but the problem is with the field widget.
My form field is as follow:
autocomplete.Select2ListChoiceField(label='',
required=True,
widget=LgrGroupedListSelect2(url='autocomplete-url',
attrs={'data-allow-clear': 'false'}))
and autocomplete-url is a Select2GroupListView.
If I replace LgrGroupedListSelect2 with autocomplete.ListSelect2 it will not display the groups correctly.