Use runtime information to determine whether class is a models.Model subclass (#182)

This commit is contained in:
Maxim Kurnikov
2019-09-28 04:05:54 +03:00
committed by GitHub
parent 5910bd1b25
commit 2c23d8e70f
6 changed files with 26 additions and 25 deletions

View File

@@ -255,8 +255,6 @@ def get_typechecker_api(ctx: Union[AttributeContext, MethodContext, FunctionCont
return cast(TypeChecker, ctx.api)
def get_all_model_mixins(api: TypeChecker) -> Set[str]:
basemodel_info = lookup_fully_qualified_typeinfo(api, fullnames.MODEL_CLASS_FULLNAME)
if basemodel_info is None:
return set()
return set(get_django_metadata(basemodel_info).get('model_mixins', dict).keys())
def is_model_subclass_info(info: TypeInfo, django_context: 'DjangoContext') -> bool:
return (info.fullname() in django_context.model_base_classes
or info.has_base(fullnames.MODEL_CLASS_FULLNAME))