mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-07 04:34:29 +08:00
add objects to model, trade false positive for false negative
This commit is contained in:
@@ -16,6 +16,7 @@ class Model(metaclass=ModelBase):
|
|||||||
class Meta: ...
|
class Meta: ...
|
||||||
_default_manager: Manager[Model]
|
_default_manager: Manager[Model]
|
||||||
_meta: Options[Any]
|
_meta: Options[Any]
|
||||||
|
objects: Manager[Any]
|
||||||
pk: Any = ...
|
pk: Any = ...
|
||||||
def __init__(self: _Self, *args, **kwargs) -> None: ...
|
def __init__(self: _Self, *args, **kwargs) -> None: ...
|
||||||
def delete(self, using: Any = ..., keep_parents: bool = ...) -> Tuple[int, Dict[str, int]]: ...
|
def delete(self, using: Any = ..., keep_parents: bool = ...) -> Tuple[int, Dict[str, int]]: ...
|
||||||
|
|||||||
@@ -172,13 +172,6 @@ class ManyToManyField(RelatedField[_ST, _GT]):
|
|||||||
description: Any = ...
|
description: Any = ...
|
||||||
has_null_arg: Any = ...
|
has_null_arg: Any = ...
|
||||||
swappable: bool = ...
|
swappable: bool = ...
|
||||||
m2m_db_table: str = ...
|
|
||||||
m2m_column_name: str = ...
|
|
||||||
m2m_reverse_name: str = ...
|
|
||||||
m2m_field_name: str = ...
|
|
||||||
m2m_reverse_field_name: str = ...
|
|
||||||
m2m_target_field_name: str = ...
|
|
||||||
m2m_reverse_target_field_name: str = ...
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
to: Union[Type[_T], str],
|
to: Union[Type[_T], str],
|
||||||
@@ -217,5 +210,11 @@ class ManyToManyField(RelatedField[_ST, _GT]):
|
|||||||
def get_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
def get_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
||||||
def get_reverse_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
def get_reverse_path_info(self, filtered_relation: None = ...) -> List[PathInfo]: ...
|
||||||
def contribute_to_related_class(self, cls: Type[Model], related: RelatedField) -> None: ...
|
def contribute_to_related_class(self, cls: Type[Model], related: RelatedField) -> None: ...
|
||||||
|
def m2m_db_table(self) -> str: ...
|
||||||
|
def m2m_column_name(self) -> str: ...
|
||||||
|
def m2m_reverse_name(self) -> str: ...
|
||||||
|
def m2m_reverse_field_name(self) -> str: ...
|
||||||
|
def m2m_target_field_name(self) -> str: ...
|
||||||
|
def m2m_reverse_target_field_name(self) -> str: ...
|
||||||
|
|
||||||
def create_many_to_many_intermediary_model(field: Type[Field], klass: Type[Model]) -> Type[Model]: ...
|
def create_many_to_many_intermediary_model(field: Type[Field], klass: Type[Model]) -> Type[Model]: ...
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ def determine_proper_manager_type(ctx: FunctionContext) -> MypyType:
|
|||||||
if not outer_model_info.has_base(fullnames.MODEL_CLASS_FULLNAME):
|
if not outer_model_info.has_base(fullnames.MODEL_CLASS_FULLNAME):
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
api = cast(TypeChecker, ctx.api)
|
|
||||||
return helpers.reparametrize_instance(ret, [Instance(outer_model_info, [])])
|
return helpers.reparametrize_instance(ret, [Instance(outer_model_info, [])])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -30,21 +30,6 @@
|
|||||||
class Child(Parent):
|
class Child(Parent):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
- case: if_manager_is_defined_on_model_do_not_add_objects
|
|
||||||
main: |
|
|
||||||
from myapp.models import MyModel
|
|
||||||
reveal_type(MyModel.authors) # N: Revealed type is 'django.db.models.manager.Manager[myapp.models.MyModel]'
|
|
||||||
MyModel.objects # E: "Type[MyModel]" has no attribute "objects"
|
|
||||||
installed_apps:
|
|
||||||
- myapp
|
|
||||||
files:
|
|
||||||
- path: myapp/__init__.py
|
|
||||||
- path: myapp/models.py
|
|
||||||
content: |
|
|
||||||
from django.db import models
|
|
||||||
class MyModel(models.Model):
|
|
||||||
authors = models.Manager['MyModel']()
|
|
||||||
|
|
||||||
- case: test_model_objects_attribute_present_in_case_of_model_cls_passed_as_generic_parameter
|
- case: test_model_objects_attribute_present_in_case_of_model_cls_passed_as_generic_parameter
|
||||||
main: |
|
main: |
|
||||||
from myapp.models import Base, MyModel
|
from myapp.models import Base, MyModel
|
||||||
|
|||||||
Reference in New Issue
Block a user