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

This commit is contained in:
Daniel Sheppard 2022-02-15 09:27:55 -06:00
parent b5e4fdc3d8
commit 6bbf168cec
2 changed files with 17 additions and 0 deletions

View File

@ -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)

View File

@ -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: