From fc7cb106c1889a0a2a27b8bbdb6ad49118a10eb4 Mon Sep 17 00:00:00 2001 From: kkthxbye-code Date: Sat, 18 Feb 2023 19:29:57 +0100 Subject: [PATCH] Address feedback --- netbox/extras/lookups.py | 2 +- netbox/netbox/search/__init__.py | 2 +- netbox/netbox/search/backends.py | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/netbox/extras/lookups.py b/netbox/extras/lookups.py index d4ed2b6a4..77fe2301e 100644 --- a/netbox/extras/lookups.py +++ b/netbox/extras/lookups.py @@ -25,7 +25,7 @@ class NetContainsOrEquals(Lookup): lhs, lhs_params = self.process_lhs(qn, connection) rhs, rhs_params = self.process_rhs(qn, connection) params = lhs_params + rhs_params - return 'CAST(%s as inet) >>= %s' % (lhs, rhs), params + return 'CAST(%s AS INET) >>= %s' % (lhs, rhs), params CharField.register_lookup(Empty) diff --git a/netbox/netbox/search/__init__.py b/netbox/netbox/search/__init__.py index f4cc07c4d..6d53e9a97 100644 --- a/netbox/netbox/search/__init__.py +++ b/netbox/netbox/search/__init__.py @@ -48,7 +48,7 @@ class SearchIndex: return FieldTypes.FLOAT if issubclass(field_cls, IPAddressField): return FieldTypes.INET - if issubclass(field_cls, (IPNetworkField)): + if issubclass(field_cls, IPNetworkField): return FieldTypes.CIDR if issubclass(field_cls, models.IntegerField): return FieldTypes.INTEGER diff --git a/netbox/netbox/search/backends.py b/netbox/netbox/search/backends.py index 53a4fe683..10e164c09 100644 --- a/netbox/netbox/search/backends.py +++ b/netbox/netbox/search/backends.py @@ -99,11 +99,12 @@ class CachedValueSearchBackend(SearchBackend): query_filter = Q(**{f'value__{lookup}': value}) + if object_types: + query_filter &= Q(object_type__in=object_types) + if lookup in (LookupTypes.STARTSWITH, LookupTypes.ENDSWITH): # Partial string matches are valid only on string values query_filter &= Q(type=FieldTypes.STRING) - if object_types: - query_filter &= Q(object_type__in=object_types) if lookup == LookupTypes.PARTIAL: try: