diff --git a/stubs/django-filter/METADATA.toml b/stubs/django-filter/METADATA.toml index 6cf7cf7fb6c8..1c9f66a865dd 100644 --- a/stubs/django-filter/METADATA.toml +++ b/stubs/django-filter/METADATA.toml @@ -1,6 +1,6 @@ version = "26.1.*" upstream-repository = "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/carltongibson/django-filter/" -dependencies = ["django-stubs"] +dependencies = ["django-stubs>=6.0.8"] [tool.stubtest] mypy-plugins = ["mypy_django_plugin.main"] diff --git a/stubs/django-filter/django_filters/fields.pyi b/stubs/django-filter/django_filters/fields.pyi index 0b72e5ebb10f..9a2b5293d4ee 100644 --- a/stubs/django-filter/django_filters/fields.pyi +++ b/stubs/django-filter/django_filters/fields.pyi @@ -1,9 +1,10 @@ from _typeshed import Unused from collections.abc import Callable, Iterable, Mapping, Sequence -from typing import Any, NamedTuple, TypeAlias +from typing import Any, NamedTuple, TypeAlias, TypeVar from django import forms from django.db.models import Choices +from django.db.models.base import Model from django.forms import Widget from django_stubs_ext import StrOrPromise @@ -27,6 +28,8 @@ _Choices: TypeAlias = Iterable[_Choice | _ChoiceNamedGroup] _ChoicesMapping: TypeAlias = Mapping[Any, Any] _ChoicesInput: TypeAlias = _Choices | _ChoicesMapping | type[Choices] | Callable[[], _Choices | _ChoicesMapping] +_M = TypeVar("_M", bound=Model) + class RangeField(forms.MultiValueField): widget: _ClassLevelWidget = ... def __init__( @@ -111,7 +114,7 @@ class ChoiceIterator: def __iter__(self) -> Any: ... # Iterator yields choice tuples with any value types def __len__(self) -> int: ... -class ModelChoiceIterator(forms.models.ModelChoiceIterator): +class ModelChoiceIterator(forms.models.ModelChoiceIterator[_M]): def __iter__(self) -> Any: ... # Iterator yields choice tuples with any value types def __len__(self) -> int: ...