Model.objects should be a ClassVar

Model.objects is only available on classes and while we cannot force this, without ClassVar it's kind of only available on instances.

I have noticed this when I was writing a Jedi plugin that makes django-stubs work properly.
This commit is contained in:
Dave Halter
2020-06-09 22:48:19 +02:00
parent 54e5ecc16a
commit 28afe59881

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Collection, Dict, Iterable, List, Optional, Set, Tuple, Type, TypeVar, Union
from typing import Any, Callable, Collection, Dict, Iterable, List, Optional, Set, Tuple, Type, TypeVar, Union, ClassVar
from django.core.checks.messages import CheckMessage
from django.core.exceptions import (
@@ -26,7 +26,7 @@ class Model(metaclass=ModelBase):
class Meta: ...
_meta: Options[Any]
_default_manager: BaseManager[Model]
objects: BaseManager[Any]
objects: ClassVar[BaseManager[Any]]
pk: Any = ...
_state: ModelState
def __init__(self: _Self, *args, **kwargs) -> None: ...