Browse Source

Fixes #433: Correct form validation when editing child devices

Jeremy Stretch 8 years ago
parent
commit
324a5e10d7
1 changed files with 3 additions and 1 deletions
  1. 3 1
      netbox/dcim/forms.py

+ 3 - 1
netbox/dcim/forms.py

@@ -402,7 +402,7 @@ class DeviceForm(forms.ModelForm, BootstrapMixin):
             self.fields['primary_ip6'].widget.attrs['readonly'] = True
 
         # Limit rack choices
-        if self.is_bound:
+        if self.is_bound and self.data.get('site'):
             self.fields['rack'].queryset = Rack.objects.filter(site__pk=self.data['site'])
         elif self.initial.get('site'):
             self.fields['rack'].queryset = Rack.objects.filter(site=self.initial['site'])
@@ -443,6 +443,8 @@ class DeviceForm(forms.ModelForm, BootstrapMixin):
         if pk and self.instance.device_type.is_child_device and hasattr(self.instance, 'parent_bay'):
             self.fields['site'].disabled = True
             self.fields['rack'].disabled = True
+            self.initial['site'] = self.instance.parent_bay.device.rack.site_id
+            self.initial['rack'] = self.instance.parent_bay.device.rack_id
 
 
 class BaseDeviceFromCSVForm(forms.ModelForm):