Просмотр исходного кода

9584 add device type (slug) to filter list (#10630)

* 9584 add device type (slug) to filter list

* 9584 add test
Arthur Hanson 3 лет назад
Родитель
Сommit
e7659a5f99
2 измененных файлов с 8 добавлено и 0 удалено
  1. 6 0
      netbox/dcim/filtersets.py
  2. 2 0
      netbox/dcim/tests/test_filtersets.py

+ 6 - 0
netbox/dcim/filtersets.py

@@ -800,6 +800,12 @@ class DeviceFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilter
         to_field_name='slug',
         label='Manufacturer (slug)',
     )
+    device_type = django_filters.ModelMultipleChoiceFilter(
+        field_name='device_type__slug',
+        queryset=DeviceType.objects.all(),
+        to_field_name='slug',
+        label='Device type (slug)',
+    )
     device_type_id = django_filters.ModelMultipleChoiceFilter(
         queryset=DeviceType.objects.all(),
         label='Device type (ID)',

+ 2 - 0
netbox/dcim/tests/test_filtersets.py

@@ -1643,6 +1643,8 @@ class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests):
         device_types = DeviceType.objects.all()[:2]
         params = {'device_type_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
+        params = {'device_type': [device_types[0].slug, device_types[1].slug]}
+        self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicerole(self):
         device_roles = DeviceRole.objects.all()[:2]