From c27ad7a30b5ac2fbb1e5ebae52de61ca82cf1881 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 13 Jan 2026 16:48:59 -0500 Subject: [PATCH] Closes #21142: Enable filtering device components by site/location/rack directly via GraphQL API --- netbox/dcim/graphql/filter_mixins.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/netbox/dcim/graphql/filter_mixins.py b/netbox/dcim/graphql/filter_mixins.py index c02c89948..c1e7fde5b 100644 --- a/netbox/dcim/graphql/filter_mixins.py +++ b/netbox/dcim/graphql/filter_mixins.py @@ -38,6 +38,15 @@ class ScopedFilterMixin: @dataclass class ComponentModelFilterMixin: + _site: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( + strawberry_django.filter_field(name='site') + ) + _location: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( + strawberry_django.filter_field(name='location') + ) + _rack: Annotated['SiteFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( + strawberry_django.filter_field(name='rack') + ) device: Annotated['DeviceFilter', strawberry.lazy('dcim.graphql.filters')] | None = strawberry_django.filter_field() device_id: ID | None = strawberry_django.filter_field() name: FilterLookup[str] | None = strawberry_django.filter_field()