API Reference

Filters

class filteralchemy.filters.Filter(field=None, attr=None, label=None, operator=<class 'filteralchemy.operators.Equal'>)[source]

Base filter.

Parameters:
  • field (Field) – Field to deserialize filter parameter
  • attr (str) – Model attribute name
  • label (str) – Lookup key on input dictionary
  • operator – Operator or filter callable

Filterset

class filteralchemy.filterset.FilterSet(query=None)[source]

Example usage:

from models import Album, session
from webargs.flaskparser import parser
from filteralchemy import FilterSet

class AlbumFilterSet(FilterSet):
    class Meta:
        model = Album
        query = session.query(Album)
        parser = parser

query = AlbumFilterSet().filter()
Parameters:query – Optional SQLAlchemy query; if not provided, use query defined on options class
class Meta[source]

Available options:

  • model: SQLAlchemy model class
  • query: Query on model
  • fields: Sequence of model field names to include, or a callable that

accepts a FilterSet subclass and returns a sequence of fields - exclude: Tuple or list of model field names to exclude, or a callable that accepts a FilterSet subclass and returns a sequence of fields - list_class: List field class; defaults to List - converter: ModelConverter instance; defaults to ModelConverter() - operators: Tuple or list of Operator classes - default_operator: Default operator; non-default operators will include

operator labels in auto-generated filter names
  • formatter: Callable for building names of auto-generated filters
  • column_overrides: Dictionary mapping column names to operator and field overrides
  • parser: Webargs request parser
FilterSet.filter()[source]

Generate a filtered query from request parameters.

Returns:Filtered SQLALchemy query