diff --git a/_modules/advanced_alchemy/filters.html b/_modules/advanced_alchemy/filters.html index b5cb94f..c5e74c7 100644 --- a/_modules/advanced_alchemy/filters.html +++ b/_modules/advanced_alchemy/filters.html @@ -428,7 +428,7 @@

Source code for advanced_alchemy.filters

                 lambda s: s.where(field <= on_or_before),
                 track_bound_values=True,
                 track_closure_variables=False,
-                track_on=[self.__class__.__name__, model, self.field_name, self.on_or_before],
+                track_on=[self.__class__.__name__, model.__name__, self.field_name, self.on_or_before],
             )
         if self.on_or_after is not None:
             on_or_after = self.on_or_after
@@ -436,7 +436,7 @@ 

Source code for advanced_alchemy.filters

                 lambda s: s.where(field >= on_or_after),
                 track_bound_values=True,
                 track_closure_variables=False,
-                track_on=[self.__class__.__name__, model, self.field_name, self.on_or_after],
+                track_on=[self.__class__.__name__, model.__name__, self.field_name, self.on_or_after],
             )
         return statement
@@ -500,14 +500,14 @@

Source code for advanced_alchemy.filters

                 lambda s: s.where(any_(values) == field),  # type: ignore[arg-type]
                 track_bound_values=True,
                 track_closure_variables=False,
-                track_on=[self.__class__.__name__, self.field_name, model],
+                track_on=[self.__class__.__name__, self.field_name, model.__name__],
             )
         values = self.values
         return statement.add_criteria(
             lambda s: s.where(field.in_(values)),
             track_bound_values=True,
             track_closure_variables=False,
-            track_on=[self.__class__.__name__, self.field_name, model],
+            track_on=[self.__class__.__name__, self.field_name, model.__name__],
         )
@@ -559,14 +559,14 @@

Source code for advanced_alchemy.filters

                 lambda s: s.where(any_(values) != field),  # type: ignore[arg-type]
                 track_bound_values=True,
                 track_closure_variables=False,
-                track_on=[self.__class__.__name__, self.field_name, model],
+                track_on=[self.__class__.__name__, self.field_name, model.__name__],
             )
         values = self.values
         return statement.add_criteria(
             lambda s: s.where(field.notin_(values)),
             track_bound_values=True,
             track_closure_variables=False,
-            track_on=[self.__class__.__name__, self.field_name, model],
+            track_on=[self.__class__.__name__, self.field_name, model.__name__],
         )
@@ -609,7 +609,7 @@

Source code for advanced_alchemy.filters

             lambda s: s.limit(limit).offset(offset),
             track_bound_values=True,
             track_closure_variables=False,
-            track_on=[self.__class__.__name__, limit, offset, model],
+            track_on=[self.__class__.__name__, limit, offset, model.__name__],
         )
@@ -648,7 +648,7 @@

Source code for advanced_alchemy.filters

             lambda s: s.order_by(fragment),
             track_bound_values=False,
             track_closure_variables=False,
-            track_on=[self.__class__.__name__, model, self.field_name, self.sort_order],
+            track_on=[self.__class__.__name__, model.__name__, self.field_name, self.sort_order],
         )
@@ -713,25 +713,31 @@

Source code for advanced_alchemy.filters

             lambda s: s.where(where_clause),
             track_bound_values=True,
             track_closure_variables=True,
-            track_on=[self.__class__.__name__, model, str(self.normalized_field_names), self.value, self.ignore_case],
-        )
+ track_on=[ + self.__class__.__name__, + model.__name__, + str(self.normalized_field_names), + self.value, + self.ignore_case, + ], + ) - - + +
[docs] -@dataclass -class NotInSearchFilter(SearchFilter): - """Data required to construct a ``WHERE field_name NOT LIKE '%' || :value || '%'`` clause.""" - - @property - def _operator(self) -> Callable[..., ColumnElement[bool]]: - return and_ - - @property - def _func(self) -> attrgetter[Callable[[str], BinaryExpression[bool]]]: - return attrgetter("not_ilike" if self.ignore_case else "not_like")
+
@dataclass +class NotInSearchFilter(SearchFilter): + """Data required to construct a ``WHERE field_name NOT LIKE '%' || :value || '%'`` clause.""" + + @property + def _operator(self) -> Callable[..., ColumnElement[bool]]: + return and_ + + @property + def _func(self) -> attrgetter[Callable[[str], BinaryExpression[bool]]]: + return attrgetter("not_ilike" if self.ignore_case else "not_like")