|
1 | 1 | from typing import Any |
| 2 | +from typing_extensions import TypeAlias |
2 | 3 |
|
3 | 4 | from django.db.models import QuerySet |
4 | 5 | from django.http import HttpRequest |
5 | 6 | from django_filters.filterset import FilterSetMetaclass |
6 | | -from rest_framework.views import APIView |
7 | 7 |
|
8 | 8 | from . import filterset |
9 | 9 |
|
| 10 | +# APIView placeholder - djangorestframework is optional, so we use Any for compatibility |
| 11 | +_APIView: TypeAlias = Any |
| 12 | + |
10 | 13 | class DjangoFilterBackend: |
11 | 14 | filterset_base: FilterSetMetaclass = ... |
12 | 15 | raise_exception: bool |
13 | 16 | @property |
14 | 17 | def template(self) -> str: ... |
15 | 18 |
|
16 | 19 | # Works with any model type |
17 | | - def get_filterset(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> filterset.FilterSet | None: ... |
| 20 | + def get_filterset(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> filterset.FilterSet | None: ... |
18 | 21 |
|
19 | 22 | # Any model queryset |
20 | | - def get_filterset_class(self, view: APIView, queryset: QuerySet[Any] | None = None) -> type[filterset.FilterSet] | None: ... |
| 23 | + def get_filterset_class(self, view: _APIView, queryset: QuerySet[Any] | None = None) -> type[filterset.FilterSet] | None: ... |
21 | 24 |
|
22 | 25 | # Kwargs vary by filterset |
23 | | - def get_filterset_kwargs(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> dict[str, Any]: ... |
| 26 | + def get_filterset_kwargs(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> dict[str, Any]: ... |
24 | 27 |
|
25 | 28 | # Filters any model type |
26 | | - def filter_queryset(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> QuerySet[Any]: ... |
27 | | - def to_html(self, request: HttpRequest, queryset: QuerySet[Any], view: APIView) -> str: ... # Renders form for any model |
| 29 | + def filter_queryset(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> QuerySet[Any]: ... |
| 30 | + def to_html(self, request: HttpRequest, queryset: QuerySet[Any], view: _APIView) -> str: ... # Renders form for any model |
0 commit comments