From 2f23bdcebb2c49c5708e2bd65f198ac468aa422b Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 22 Oct 2025 10:23:11 -0400 Subject: [PATCH] Correct device/VM component filterset definitions --- netbox/dcim/filtersets.py | 5 +++-- netbox/virtualization/filtersets.py | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/filtersets.py b/netbox/dcim/filtersets.py index 8cd36acbe..64f592ae5 100644 --- a/netbox/dcim/filtersets.py +++ b/netbox/dcim/filtersets.py @@ -12,10 +12,11 @@ from ipam.models import ASN, IPAddress, VLANTranslationPolicy, VRF from netbox.choices import ColorChoices from netbox.filtersets import ( AttributeFiltersMixin, BaseFilterSet, ChangeLoggedModelFilterSet, NestedGroupModelFilterSet, - OrganizationalModelFilterSet, PrimaryModelFilterSet, + OrganizationalModelFilterSet, PrimaryModelFilterSet, NetBoxModelFilterSet, ) from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet from tenancy.models import * +from users.filterset_mixins import OwnerFilterMixin from users.models import User from utilities.filters import ( ContentTypeFilter, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, MultiValueWWNFilter, @@ -1516,7 +1517,7 @@ class ModuleFilterSet(PrimaryModelFilterSet): ).distinct() -class DeviceComponentFilterSet(PrimaryModelFilterSet): +class DeviceComponentFilterSet(OwnerFilterMixin, NetBoxModelFilterSet): q = django_filters.CharFilter( method='search', label=_('Search'), diff --git a/netbox/virtualization/filtersets.py b/netbox/virtualization/filtersets.py index 567b20b6d..e2ef8cb6a 100644 --- a/netbox/virtualization/filtersets.py +++ b/netbox/virtualization/filtersets.py @@ -9,8 +9,10 @@ from dcim.models import MACAddress from extras.filtersets import LocalConfigContextFilterSet from extras.models import ConfigTemplate from ipam.filtersets import PrimaryIPFilterSet -from netbox.filtersets import OrganizationalModelFilterSet, PrimaryModelFilterSet +from netbox.filtersets import NetBoxModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet from tenancy.filtersets import TenancyFilterSet, ContactModelFilterSet + +from users.filterset_mixins import OwnerFilterMixin from utilities.filters import MultiValueCharFilter, MultiValueMACAddressFilter, TreeNodeMultipleChoiceFilter from .choices import * from .models import * @@ -235,7 +237,7 @@ class VirtualMachineFilterSet( return queryset.exclude(params) -class VMInterfaceFilterSet(PrimaryModelFilterSet, CommonInterfaceFilterSet): +class VMInterfaceFilterSet(CommonInterfaceFilterSet, OwnerFilterMixin, NetBoxModelFilterSet): cluster_id = django_filters.ModelMultipleChoiceFilter( field_name='virtual_machine__cluster', queryset=Cluster.objects.all(), @@ -297,7 +299,7 @@ class VMInterfaceFilterSet(PrimaryModelFilterSet, CommonInterfaceFilterSet): ) -class VirtualDiskFilterSet(PrimaryModelFilterSet): +class VirtualDiskFilterSet(OwnerFilterMixin, NetBoxModelFilterSet): virtual_machine_id = django_filters.ModelMultipleChoiceFilter( field_name='virtual_machine', queryset=VirtualMachine.objects.all(),