From 6bd083b7ed4c5a6767a3be23bf26832b3eb26e02 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 14 Jan 2026 09:06:55 -0500 Subject: [PATCH] Closes #21142: Enable filtering device components by site/location/rack directly via GraphQL API (#21145) --- 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..50ce98cfb 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['LocationFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( + strawberry_django.filter_field(name='location') + ) + _rack: Annotated['RackFilter', 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()