mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-10 05:51:53 +08:00
QuerySet.as_manager() support
This commit is contained in:
42
test-data/typecheck/managers/querysets/test_as_manager.yml
Normal file
42
test-data/typecheck/managers/querysets/test_as_manager.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
- case: anonymous_queryset_from_as_manager_inside_model
|
||||
main: |
|
||||
from myapp.models import MyModel
|
||||
|
||||
reveal_type(MyModel.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_MyModel'
|
||||
reveal_type(MyModel.objects.get()) # N: Revealed type is 'myapp.models.MyModel*'
|
||||
reveal_type(MyModel.objects.queryset_method) # N: Revealed type is 'def () -> builtins.int'
|
||||
reveal_type(MyModel.objects.queryset_method()) # N: Revealed type is 'builtins.int'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class MyQuerySet(models.QuerySet):
|
||||
def queryset_method(self) -> int:
|
||||
pass
|
||||
class MyModel(models.Model):
|
||||
objects = MyQuerySet.as_manager()
|
||||
|
||||
|
||||
- case: as_manager_outside_model_parametrized_with_any
|
||||
main: |
|
||||
from myapp.models import NotModel, outside_objects
|
||||
reveal_type(NotModel.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_Any'
|
||||
reveal_type(NotModel.objects.get()) # N: Revealed type is 'Any'
|
||||
reveal_type(outside_objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_Any'
|
||||
reveal_type(outside_objects.get()) # N: Revealed type is 'Any'
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class MyQuerySet(models.QuerySet):
|
||||
def queryset_method(self) -> int:
|
||||
pass
|
||||
outside_objects = MyQuerySet.as_manager()
|
||||
class NotModel:
|
||||
objects = MyQuerySet.as_manager()
|
||||
Reference in New Issue
Block a user