Fixes #1229: Fix validation error on forms where API search is used

This commit is contained in:
Jeremy Stretch
2017-05-25 14:33:50 -04:00
parent ebddc46bc0
commit 1dd5e2c926
12 changed files with 173 additions and 118 deletions

View File

@@ -443,17 +443,19 @@ class ChainedFieldsMixin(forms.BaseForm):
if isinstance(field, ChainedModelChoiceField):
filters_dict = {}
for db_field, parent_field in field.chains.items():
for (db_field, parent_field) in field.chains:
if self.is_bound and self.data.get(parent_field):
filters_dict[db_field] = self.data[parent_field]
elif self.initial.get(parent_field):
filters_dict[db_field] = self.initial[parent_field]
elif self.fields[parent_field].widget.attrs.get('nullable'):
filters_dict[db_field] = None
else:
break
if filters_dict:
field.queryset = field.queryset.filter(**filters_dict)
else:
elif not self.is_bound:
field.queryset = field.queryset.none()