diff --git a/netbox/circuits/forms.py b/netbox/circuits/forms.py index f3894c02e..f81abff04 100644 --- a/netbox/circuits/forms.py +++ b/netbox/circuits/forms.py @@ -219,14 +219,17 @@ class CircuitTerminationForm(BootstrapMixin, ChainedFieldsMixin, forms.ModelForm 'term_side': forms.HiddenInput(), } - def __init__(self, instance=None, initial=None, *args, **kwargs): + def __init__(self, *args, **kwargs): # Initialize helper selectors + instance = kwargs.get('instance') if instance and instance.interface is not None: + initial = kwargs.get('initial', {}) initial['rack'] = instance.interface.device.rack initial['device'] = instance.interface.device + kwargs['initial'] = initial - super(CircuitTerminationForm, self).__init__(instance=instance, initial=initial, *args, **kwargs) + super(CircuitTerminationForm, self).__init__(*args, **kwargs) # Mark connected interfaces as disabled self.fields['interface'].choices = [ diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 07b3f9d74..429e1d7aa 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -592,13 +592,16 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm): 'face': forms.Select(attrs={'filter-for': 'position'}), } - def __init__(self, instance=None, initial=None, *args, **kwargs): + def __init__(self, *args, **kwargs): - # Initialize helper selections + # Initialize helper selectors + instance = kwargs.get('instance') if instance and instance.device_type is not None: + initial = kwargs.get('initial', {}) initial['manufacturer'] = instance.device_type.manufacturer + kwargs['initial'] = initial - super(DeviceForm, self).__init__(instance=instance, initial=initial, *args, **kwargs) + super(DeviceForm, self).__init__(*args, **kwargs) if self.instance.pk: diff --git a/netbox/ipam/forms.py b/netbox/ipam/forms.py index 108fd0e2f..3b81f7d89 100644 --- a/netbox/ipam/forms.py +++ b/netbox/ipam/forms.py @@ -405,21 +405,22 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm) 'tenant', ] - def __init__(self, instance=None, initial=None, *args, **kwargs): + def __init__(self, *args, **kwargs): - # Initialize interface selectors + # Initialize helper selectors + instance = kwargs.get('instance') + initial = kwargs.get('initial', {}) if instance and instance.interface is not None: initial['interface_site'] = instance.interface.device.site initial['interface_rack'] = instance.interface.device.rack initial['interface_device'] = instance.interface.device - - # Initialize NAT selectors if instance and instance.nat_inside is not None: initial['nat_site'] = instance.nat_inside.device.site initial['nat_rack'] = instance.nat_inside.device.rack initial['nat_device'] = instance.nat_inside.device + kwargs['initial'] = initial - super(IPAddressForm, self).__init__(instance=instance, initial=initial, *args, **kwargs) + super(IPAddressForm, self).__init__(*args, **kwargs) self.fields['vrf'].empty_label = 'Global' diff --git a/netbox/tenancy/forms.py b/netbox/tenancy/forms.py index fc99c5175..e9a39d237 100644 --- a/netbox/tenancy/forms.py +++ b/netbox/tenancy/forms.py @@ -91,9 +91,8 @@ class TenancyForm(ChainedFieldsMixin, forms.Form): # Initialize helper selector instance = kwargs.get('instance') if instance and instance.tenant is not None: - try: - kwargs['initial']['tenant_group'] = instance.tenant.group - except KeyError: - kwargs['initial'] = {'tenant_group': instance.tenant.group} + initial = kwargs.get('initial', {}) + initial['tenant_group'] = instance.tenant.group + kwargs['initial'] = initial super(TenancyForm, self).__init__(*args, **kwargs)