From 9914576eaa06eaca56de9e052400c64db33d7115 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 9 Aug 2018 15:46:18 -0400 Subject: [PATCH] Fixes #2344: AttributeError when assigning VLANs to an interface on a device/VM not assigned to a site --- netbox/dcim/forms.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 521c3c858..4e201639c 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1795,7 +1795,7 @@ class InterfaceAssignVLANsForm(BootstrapMixin, forms.ModelForm): # Compile VLAN choices vlan_choices = [] - # Add global VLANs + # Add non-grouped global VLANs global_vlans = VLAN.objects.filter(site=None, group=None).exclude(pk__in=assigned_vlans) vlan_choices.append(( 'Global', [(vlan.pk, vlan) for vlan in global_vlans]) @@ -1808,16 +1808,15 @@ class InterfaceAssignVLANsForm(BootstrapMixin, forms.ModelForm): (group.name, [(vlan.pk, vlan) for vlan in global_group_vlans]) ) - parent = self.instance.parent - if parent is not None: + site = getattr(self.instance.parent, 'site', None) + if site is not None: - # Add site VLANs - if parent.site: - site_vlans = VLAN.objects.filter(site=parent.site, group=None).exclude(pk__in=assigned_vlans) - vlan_choices.append((parent.site.name, [(vlan.pk, vlan) for vlan in site_vlans])) + # Add non-grouped site VLANs + site_vlans = VLAN.objects.filter(site=site, group=None).exclude(pk__in=assigned_vlans) + vlan_choices.append((site.name, [(vlan.pk, vlan) for vlan in site_vlans])) # Add grouped site VLANs - for group in VLANGroup.objects.filter(site=parent.site): + for group in VLANGroup.objects.filter(site=site): site_group_vlans = VLAN.objects.filter(group=group).exclude(pk__in=assigned_vlans) vlan_choices.append(( '{} / {}'.format(group.site.name, group.name),