allow manager classes nested inside model classes

This commit is contained in:
Maxim Kurnikov
2020-01-04 17:56:05 +03:00
parent 90617bc76a
commit 356a5881e7
4 changed files with 45 additions and 7 deletions

View File

@@ -335,3 +335,23 @@
objects = MyManager()
class ChildUser(models.Model):
objects = MyManager()
- case: manager_defined_in_the_nested_class
main: |
from myapp.models import MyModel
reveal_type(MyModel.objects) # N: Revealed type is 'myapp.models.MyModel_MyManager[myapp.models.MyModel]'
reveal_type(MyModel.objects.get()) # N: Revealed type is 'myapp.models.MyModel*'
reveal_type(MyModel.objects.mymethod()) # 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 MyModel(models.Model):
class MyManager(models.Manager):
def mymethod(self) -> int:
pass
objects = MyManager()