Skip to content

Commit 6667440

Browse files
authored
Test usage of from_queryset manager as reverse manager (#2295)
1 parent b6b4353 commit 6667440

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/typecheck/managers/querysets/test_from_queryset.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -946,3 +946,25 @@
946946
main:12: error: Argument 1 to "from_queryset" of "BaseManager" has incompatible type "<typing special form>"; expected "Type[QuerySet[Model, Model]]" [arg-type]
947947
main:17: note: Revealed type is "Type[django.db.models.manager.Manager[django.db.models.base.Model]]"
948948
main:17: error: Argument 1 to "from_queryset" of "BaseManager" has incompatible type "Type[NonQSGeneric[Any]]"; expected "Type[QuerySet[Model, Model]]" [arg-type]
949+
950+
- case: test_reverse_manager_with_foreign_key
951+
main: |
952+
from myapp.models import B
953+
reveal_type(B().a_set.filter(field="something")) # N: Revealed type is "myapp.models.QS"
954+
installed_apps:
955+
- myapp
956+
files:
957+
- path: myapp/__init__.py
958+
- path: myapp/models.py
959+
content: |
960+
from django.db import models
961+
962+
class B(models.Model): ...
963+
964+
class QS(models.QuerySet["A"]): ...
965+
966+
Manager = models.Manager.from_queryset(QS)
967+
class A(models.Model):
968+
field = models.CharField()
969+
b = models.ForeignKey(B, on_delete=models.CASCADE)
970+
objects = Manager()

0 commit comments

Comments
 (0)