kkthxbye-code 3 лет назад
Родитель
Сommit
fc7cb106c1
3 измененных файлов с 5 добавлено и 4 удалено
  1. 1 1
      netbox/extras/lookups.py
  2. 1 1
      netbox/netbox/search/__init__.py
  3. 3 2
      netbox/netbox/search/backends.py

+ 1 - 1
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)

+ 1 - 1
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

+ 3 - 2
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: