A simple package to implement a django-haystack search filter in Django Rest Framework
Project description
drf-haystack-search-filter
A simple package to implement a django-haystack search filter in Django Rest Framework.
Installation
pip install drf-haystack-search-filter
Usage
Simply import the HaystackSearchFilter
and use it in your API views:
from drf_haystack_search_filter.filters import HaystackSearchFilter
...
class MyAPIView(...):
...
filter_backends = [HaystackSearchFilter, ...]
...
You can customize the search behavior by overriding the _search
method.
from typing import TypeVar
from drf_haystack_search_filter.filters import HaystackSearchFilter
T = TypeVar("T")
class MyHaystackSearchFilter(HaystackSearchFilter):
def _search(self, request: Request, queryset: QuerySet[T], view: APIView, query: str) -> QuerySet[T]:
# Customize the search behavior here
return queryset.filter(
pk__in=(
SearchQuerySet()
.models(queryset.model)
.filter(content__startswith=query)
.values_list("pk", flat=True)
)
)
class MyAPIView(...):
...
filter_backends = [MyHaystackSearchFilter, ...]
...
Contributing
Contributions are welcome! To get started, please refer to our contribution guidelines.
Issues
If you encounter any problems while using this package, please open a new issue here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for drf_haystack_search_filter-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82ed031ebbe140d9550b66396eca3aaca37aa0967b6f978bb4c2a238f4158e39 |
|
MD5 | 7c91a7f11d5354c78bf3053c86224595 |
|
BLAKE2b-256 | 1fe105569848aa2c47d94ab0b2aa76fc5a7c743abfa576b2e326e47cb045101c |
Close
Hashes for drf_haystack_search_filter-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3f2424d88f9f1d2b5bb5d48c1decab1fe61337bc7a6df29b923d1b41f7cafab |
|
MD5 | 0d18052e958381c2dc047e16ceaf80ad |
|
BLAKE2b-256 | 7deee4239645b04959792b2306ab3ed33ae7d7f3b4eaa0a41109963183a11a26 |