pypaginate.adapters.django.search
Match-filter a QuerySet by a search spec across fields.
Keeps rows where any field matches the query via a case-insensitive lookup
per spec.mode (contains / prefix / exact). This is an unranked match-filter;
relevance ranking lives in the in-memory engine, not the database.
build_search_q
def build_search_q(spec: SearchSpec) -> Any
Build an OR-of-fields case-insensitive match Q (None when empty).
apply_search
def apply_search(queryset: Any, spec: SearchSpec) -> Any
Apply a match-filter search to a QuerySet (no-op when empty).