|
|
@@ -120,11 +120,20 @@ def get_selected_values(form, field_name):
|
|
|
if not hasattr(form, 'cleaned_data'):
|
|
|
form.is_valid()
|
|
|
filter_data = form.cleaned_data.get(field_name)
|
|
|
+ field = form.fields[field_name]
|
|
|
|
|
|
# Selection field
|
|
|
- if hasattr(form.fields[field_name], 'choices'):
|
|
|
+ if hasattr(field, 'choices'):
|
|
|
try:
|
|
|
- choices = dict(unpack_grouped_choices(form.fields[field_name].choices))
|
|
|
+ grouped_choices = [(k, v) for k, v in field.choices]
|
|
|
+
|
|
|
+ if hasattr(field, 'null_option'):
|
|
|
+ # If the field has a `null_option` attribute set and it is selected,
|
|
|
+ # add it to the field's grouped choices.
|
|
|
+ if field.null_option is not None and field.null_option in filter_data:
|
|
|
+ grouped_choices.append((field.null_option, field.null_option))
|
|
|
+
|
|
|
+ choices = dict(unpack_grouped_choices(grouped_choices))
|
|
|
return [
|
|
|
label for value, label in choices.items() if str(value) in filter_data
|
|
|
]
|