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

Fixes #8546 - Fix import to restrict bridge, parent, lag to device interfaces

Daniel Sheppard 4 лет назад
Родитель
Сommit
6bbf168cec
2 измененных файлов с 17 добавлено и 0 удалено
  1. 4 0
      docs/release-notes/version-3.1.md
  2. 13 0
      netbox/dcim/forms/bulk_import.py

+ 4 - 0
docs/release-notes/version-3.1.md

@@ -2,6 +2,10 @@
 
 ## v3.1.9 (FUTURE)
 
+### Bug Fixes
+
+* [#8546](https://github.com/netbox-community/netbox/issues/8546) - Fix import  to restrict bridge, parent, lag to device interfaces
+
 ---
 
 ## v3.1.8 (2022-02-15)

+ 13 - 0
netbox/dcim/forms/bulk_import.py

@@ -605,6 +605,19 @@ class InterfaceCSVForm(CustomFieldModelCSVForm):
             'rf_channel_width', 'tx_power',
         )
 
+    def __init__(self, data=None, *args, **kwargs):
+        super().__init__(data, *args, **kwargs)
+
+        if data:
+            # Limit interface choices for parent, bridge and lag to device only
+            params = {}
+            if data.get('device'):
+                params[f"device__{self.fields['device'].to_field_name}"] = data.get('device')
+            if params:
+                self.fields['parent'].queryset = self.fields['parent'].queryset.filter(**params)
+                self.fields['bridge'].queryset = self.fields['bridge'].queryset.filter(**params)
+                self.fields['lag'].queryset = self.fields['lag'].queryset.filter(**params)
+
     def clean_enabled(self):
         # Make sure enabled is True when it's not included in the uploaded data
         if 'enabled' not in self.data: