diff --git a/django-stubs/db/models/query.pyi b/django-stubs/db/models/query.pyi index a676b06..f3207f5 100644 --- a/django-stubs/db/models/query.pyi +++ b/django-stubs/db/models/query.pyi @@ -154,6 +154,9 @@ class _ValuesQuerySet(Generic[_T, _Row], Collection[_Row], Reversible[_Row], Que def distinct(self, *field_names: Any) -> _ValuesQuerySet[_T, _Row]: ... # type: ignore def order_by(self, *field_names: Any) -> _ValuesQuerySet[_T, _Row]: ... # type: ignore def all(self) -> _ValuesQuerySet[_T, _Row]: ... # type: ignore + def annotate(self, *args: Any, **kwargs: Any) -> _ValuesQuerySet[_T, Any]: ... + def filter(self, *args: Any, **kwargs: Any) -> _ValuesQuerySet[_T, _Row]: ... + def exclude(self, *args: Any, **kwargs: Any) -> _ValuesQuerySet[_T, _Row]: ... class RawQuerySet(Iterable[_T], Sized): query: RawQuery diff --git a/tests/typecheck/managers/querysets/test_values_list.yml b/tests/typecheck/managers/querysets/test_values_list.yml index b153428..db0eed1 100644 --- a/tests/typecheck/managers/querysets/test_values_list.yml +++ b/tests/typecheck/managers/querysets/test_values_list.yml @@ -29,11 +29,15 @@ - case: values_list_supports_queryset_methods main: | from myapp.models import MyUser + from django.db.models.functions import Length query = MyUser.objects.values_list('name') reveal_type(query.order_by("name").get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.distinct("name").get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.distinct().get()) # N: Revealed type is "Tuple[builtins.str]" reveal_type(query.all().get()) # N: Revealed type is "Tuple[builtins.str]" + reveal_type(query.filter(age__gt=16).get()) # N: Revealed type is "Tuple[builtins.str]" + reveal_type(query.exclude(age__lte=16).get()) # N: Revealed type is "Tuple[builtins.str]" + reveal_type(query.annotate(name_length=Length("name")).get()) # N: Revealed type is "Any" installed_apps: - myapp files: