Przeglądaj źródła

Fixes #5226: Custom choice fields should be blank initially if no default choice has been designated

Jeremy Stretch 5 lat temu
rodzic
commit
3a21f7ab26

+ 1 - 0
docs/release-notes/version-2.9.md

@@ -17,6 +17,7 @@
 * [#5220](https://github.com/netbox-community/netbox/issues/5220) - Fix API patch request against IP Address endpoint with null assigned_object_type 
 * [#5221](https://github.com/netbox-community/netbox/issues/5221) - Fix bulk component creation for virtual machines
 * [#5224](https://github.com/netbox-community/netbox/issues/5224) - Don't allow a rear port to have fewer positions than the number of mapped front ports
+* [#5226](https://github.com/netbox-community/netbox/issues/5226) - Custom choice fields should be blank initially if no default choice has been designated
 
 ---
 

+ 4 - 5
netbox/extras/models/customfields.py

@@ -200,15 +200,14 @@ class CustomField(models.Model):
         # Select
         elif self.type == CustomFieldTypeChoices.TYPE_SELECT:
             choices = [(cfc.pk, cfc.value) for cfc in self.choices.all()]
+            default_choice = self.choices.filter(value=self.default).first()
 
-            if not required:
+            if not required or default_choice is None:
                 choices = add_blank_choice(choices)
 
             # Set the initial value to the PK of the default choice, if any
-            if set_initial:
-                default_choice = self.choices.filter(value=self.default).first()
-                if default_choice:
-                    initial = default_choice.pk
+            if set_initial and default_choice:
+                initial = default_choice.pk
 
             field_class = CSVChoiceField if for_csv_import else forms.ChoiceField
             field = field_class(