Просмотр исходного кода

Account for initial data when binding a DynamicModelChoiceField

Jeremy Stretch 6 лет назад
Родитель
Сommit
fb56d5bc66
1 измененных файлов с 4 добавлено и 3 удалено
  1. 4 3
      netbox/utilities/forms.py

+ 4 - 3
netbox/utilities/forms.py

@@ -562,10 +562,11 @@ class DynamicModelChoiceField(forms.ModelChoiceField):
 
 
         # Modify the QuerySet of the field before we return it. Limit choices to any data already bound: Options
         # Modify the QuerySet of the field before we return it. Limit choices to any data already bound: Options
         # will be populated on-demand via the APISelect widget.
         # will be populated on-demand via the APISelect widget.
+        field_name = '{}{}'.format(self.to_field_name or 'pk', self.field_modifier)
         if bound_field.data:
         if bound_field.data:
-            field_name = '{}{}'.format(self.to_field_name or 'pk', self.field_modifier)
-            kwargs = {field_name: bound_field.data}
-            self.queryset = self.queryset.filter(**kwargs)
+            self.queryset = self.queryset.filter(**{field_name: bound_field.data})
+        elif bound_field.initial:
+            self.queryset = self.queryset.filter(**{field_name: bound_field.initial})
         else:
         else:
             self.queryset = self.queryset.none()
             self.queryset = self.queryset.none()