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

Fixes #4246: Fix duplication of field attributes when multiple IPNetworkVars are present in a script

Jeremy Stretch 6 лет назад
Родитель
Сommit
b97d3b0716
2 измененных файлов с 3 добавлено и 8 удалено
  1. 1 0
      docs/release-notes/version-2.7.md
  2. 2 8
      netbox/extras/scripts.py

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

@@ -13,6 +13,7 @@
 * [#4239](https://github.com/netbox-community/netbox/issues/4239) - Fix exception when selecting all filtered objects during bulk edit
 * [#4240](https://github.com/netbox-community/netbox/issues/4240) - Fix exception when filtering foreign keys by NULL
 * [#4241](https://github.com/netbox-community/netbox/issues/4241) - Correct IP address hyperlinks on interface view
+* [#4246](https://github.com/netbox-community/netbox/issues/4246) - Fix duplication of field attributes when multiple IPNetworkVars are present in a script
 
 ---
 

+ 2 - 8
netbox/extras/scripts.py

@@ -63,10 +63,6 @@ class ScriptVariable:
             self.field_attrs['widget'] = widget
         self.field_attrs['required'] = required
 
-        # Initialize the list of optional validators if none have already been defined
-        if 'validators' not in self.field_attrs:
-            self.field_attrs['validators'] = []
-
     def as_field(self):
         """
         Render the variable as a Django form field.
@@ -227,14 +223,12 @@ class IPNetworkVar(ScriptVariable):
     An IPv4 or IPv6 prefix.
     """
     form_field = IPNetworkFormField
-    field_attrs = {
-        'validators': [prefix_validator]
-    }
 
     def __init__(self, min_prefix_length=None, max_prefix_length=None, *args, **kwargs):
         super().__init__(*args, **kwargs)
 
-        # Optional minimum/maximum prefix lengths
+        # Set prefix validator and optional minimum/maximum prefix lengths
+        self.field_attrs['validators'] = [prefix_validator]
         if min_prefix_length is not None:
             self.field_attrs['validators'].append(
                 MinPrefixLengthValidator(min_prefix_length)