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 3d2534ea8d
commit fd057010f6

View File

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