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

Fixes #7084: Fix KeyError exception when editing access VLAN on an interface

jeremystretch 4 лет назад
Родитель
Сommit
3090981335
2 измененных файлов с 3 добавлено и 2 удалено
  1. 1 0
      docs/release-notes/version-3.0.md
  2. 2 2
      netbox/dcim/forms.py

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

@@ -6,6 +6,7 @@
 
 * [#7070](https://github.com/netbox-community/netbox/issues/7070) - Fix exception when filtering by prefix max length in UI
 * [#7071](https://github.com/netbox-community/netbox/issues/7071) - Fix exception when removing a primary IP from a device/VM
+* [#7084](https://github.com/netbox-community/netbox/issues/7084) - Fix KeyError exception when editing access VLAN on an interface
 * [#7096](https://github.com/netbox-community/netbox/issues/7096) - Home links should honor `BASE_PATH` configuration
 
 ---

+ 2 - 2
netbox/dcim/forms.py

@@ -129,7 +129,7 @@ class InterfaceCommonForm(forms.Form):
         super().clean()
 
         parent_field = 'device' if 'device' in self.cleaned_data else 'virtual_machine'
-        tagged_vlans = self.cleaned_data['tagged_vlans']
+        tagged_vlans = self.cleaned_data.get('tagged_vlans')
 
         # Untagged interfaces cannot be assigned tagged VLANs
         if self.cleaned_data['mode'] == InterfaceModeChoices.MODE_ACCESS and tagged_vlans:
@@ -142,7 +142,7 @@ class InterfaceCommonForm(forms.Form):
             self.cleaned_data['tagged_vlans'] = []
 
         # Validate tagged VLANs; must be a global VLAN or in the same site
-        elif self.cleaned_data['mode'] == InterfaceModeChoices.MODE_TAGGED:
+        elif self.cleaned_data['mode'] == InterfaceModeChoices.MODE_TAGGED and tagged_vlans:
             valid_sites = [None, self.cleaned_data[parent_field].site]
             invalid_vlans = [str(v) for v in tagged_vlans if v.site not in valid_sites]