Files
fastapi-admin/examples/filters.py
2021-01-06 13:40:38 +08:00

29 lines
735 B
Python

from typing import Any
from tortoise.query_utils import Q
from tortoise.queryset import QuerySet
from fastapi_admin.filters import Filter, SearchFilter, register_filter
from fastapi_admin.site import Field
class CustomFilter(Filter):
@classmethod
def get_queryset(cls, queryset: QuerySet) -> QuerySet:
return queryset.filter(~Q(key="test"))
@register_filter
class LikeFilter(SearchFilter):
@classmethod
def get_queryset(cls, queryset: QuerySet, value: Any) -> QuerySet:
return queryset.filter(name__icontains=value)
@classmethod
async def get_field(cls) -> Field:
return Field(label="NameLike", type="text")
@classmethod
def get_name(cls) -> str:
return "filter"