mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-16 00:37:11 +08:00
wip
This commit is contained in:
@@ -653,7 +653,7 @@
|
||||
- case: related_manager_is_a_subclass_of_default_manager
|
||||
main: |
|
||||
from myapp.models import User
|
||||
reveal_type(User().orders) # N: Revealed type is 'myapp.models.User.Order_RelatedManager'
|
||||
reveal_type(User().orders) # N: Revealed type is 'main.Order_RelatedManager'
|
||||
reveal_type(User().orders.get()) # N: Revealed type is 'myapp.models.Order*'
|
||||
reveal_type(User().orders.manager_method()) # N: Revealed type is 'builtins.int'
|
||||
installed_apps:
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
- 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: two_invocations_parametrized_with_different_models
|
||||
main: |
|
||||
from myapp.models import User, Blog
|
||||
reveal_type(User.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_User'
|
||||
reveal_type(User.objects.get()) # N: Revealed type is 'myapp.models.User*'
|
||||
reveal_type(User.objects.queryset_method) # N: Revealed type is 'def () -> builtins.int'
|
||||
reveal_type(User.objects.queryset_method()) # N: Revealed type is 'builtins.int'
|
||||
|
||||
reveal_type(Blog.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_Blog'
|
||||
reveal_type(Blog.objects.get()) # N: Revealed type is 'myapp.models.Blog*'
|
||||
reveal_type(Blog.objects.queryset_method) # N: Revealed type is 'def () -> builtins.int'
|
||||
reveal_type(Blog.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 User(models.Model):
|
||||
objects = MyQuerySet.as_manager()
|
||||
class Blog(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()
|
||||
|
||||
- case: test_as_manager_without_name_to_bind_in_different_files
|
||||
main: |
|
||||
from myapp.models import MyQuerySet
|
||||
reveal_type(MyQuerySet.as_manager()) # N: Revealed type is 'Any'
|
||||
reveal_type(MyQuerySet.as_manager().get()) # N: Revealed type is 'Any'
|
||||
reveal_type(MyQuerySet.as_manager().mymethod()) # N: Revealed type is 'Any'
|
||||
|
||||
from myapp import helpers
|
||||
installed_apps:
|
||||
- myapp
|
||||
files:
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from django.db import models
|
||||
class MyQuerySet(models.QuerySet):
|
||||
def mymethod(self) -> int:
|
||||
pass
|
||||
class MyModel(models.Model):
|
||||
objects = MyQuerySet.as_manager()
|
||||
- path: myapp/helpers.py
|
||||
content: |
|
||||
from myapp.models import MyQuerySet
|
||||
MyQuerySet.as_manager()
|
||||
@@ -17,11 +17,15 @@
|
||||
- path: myapp/__init__.py
|
||||
- path: myapp/models.py
|
||||
content: |
|
||||
from typing import TypeVar
|
||||
from django.db import models
|
||||
from django.db.models.manager import BaseManager, Manager
|
||||
from mypy_django_plugin.lib import generics
|
||||
|
||||
class ModelQuerySet(models.QuerySet):
|
||||
generics.make_classes_generic(models.QuerySet)
|
||||
_M = TypeVar('_M', bound=models.Model)
|
||||
|
||||
class ModelQuerySet(models.QuerySet[_M]):
|
||||
def queryset_method(self) -> str:
|
||||
return 'hello'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user