diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3730f1c..204fb0434 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ v2.5.2 (FUTURE) * [#2717](https://github.com/digitalocean/netbox/issues/2717) - Fix bulk deletion of tags * [#2721](https://github.com/digitalocean/netbox/issues/2721) - Detect loops when tracing front/rear ports * [#2723](https://github.com/digitalocean/netbox/issues/2723) - Correct permission evaluation when bulk deleting tags +* [#2724](https://github.com/digitalocean/netbox/issues/2724) - Limit rear port choices to current device when editing a front port --- diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 2bb72afc1..d02235277 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -2098,6 +2098,15 @@ class FrontPortForm(BootstrapMixin, forms.ModelForm): 'device': forms.HiddenInput(), } + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Limit RearPort choices to the local device + if hasattr(self.instance, 'device'): + self.fields['rear_port'].queryset = self.fields['rear_port'].queryset.filter( + device=self.instance.device + ) + # TODO: Merge with FrontPortTemplateCreateForm to remove duplicate logic class FrontPortCreateForm(ComponentForm):