1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Return cleaned null_option value as None in dynamic multi-select field

This commit is contained in:
thatmattlove
2021-09-07 18:43:36 -07:00
parent 6a15c2ae86
commit a9c1c8968e
2 changed files with 3 additions and 4 deletions

View File

@ -485,5 +485,5 @@ class DynamicModelMultipleChoiceField(DynamicModelChoiceMixin, forms.ModelMultip
"""
if self.null_option is not None and settings.FILTERS_NULL_CHOICE_VALUE in value:
value = [v for v in value if v != settings.FILTERS_NULL_CHOICE_VALUE]
return [self.null_option, *value]
return [None, *value]
return super().clean(value)

View File

@ -121,7 +121,6 @@ def get_selected_values(form, field_name):
form.is_valid()
filter_data = form.cleaned_data.get(field_name)
field = form.fields[field_name]
# Selection field
if hasattr(field, 'choices'):
try:
@ -130,12 +129,12 @@ def get_selected_values(form, field_name):
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:
if field.null_option is not None and None 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
label for value, label in choices.items() if str(value) in filter_data or None in filter_data
]
except TypeError:
# Field uses dynamic choices. Show all that have been populated.