Add filtering by site for interfaces

This commit is contained in:
Marco Ceppi 2019-11-21 16:20:18 -05:00
parent f40b6fd5f9
commit c03d893284

View File

@ -4,7 +4,7 @@ from django.db.models import Q
from extras.filters import CustomFieldFilterSet from extras.filters import CustomFieldFilterSet
from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, MultiValueNumberFilter from utilities.filters import NameSlugSearchFilterSet, NumericInFilter, TagFilter, MultiValueNumberFilter
from tenancy.models import Tenant, TenantGroup from tenancy.models import Tenant, TenantGroup
from dcim.models import Device, DeviceRole, Interface from dcim.models import Site, Device, DeviceRole, Interface
from dcim.api.serializers import ( from dcim.api.serializers import (
IFACE_TYPE_CHOICES, IFACE_TYPE_CHOICES,
IFACE_MODE_CHOICES, IFACE_MODE_CHOICES,
@ -102,6 +102,13 @@ class InterfaceFilter(django_filters.FilterSet):
null_value=None null_value=None
) )
site = django_filters.ModelMultipleChoiceFilter(
field_name='device__site__slug',
queryset=Site.objects.all(),
to_field_name='slug',
label='Device (slug)',
)
customer = django_filters.ModelMultipleChoiceFilter( customer = django_filters.ModelMultipleChoiceFilter(
field_name='device__tenant__slug', field_name='device__tenant__slug',
queryset=Tenant.objects.all(), queryset=Tenant.objects.all(),