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

@@ -218,18 +218,6 @@ class AddMetaOptionsAttribute(ModelClassInitializer):
]))
class RecordAllModelMixins(ModelClassInitializer):
def run(self) -> None:
basemodel_info = self.lookup_typeinfo_or_incomplete_defn_error(fullnames.MODEL_CLASS_FULLNAME)
basemodel_metadata = helpers.get_django_metadata(basemodel_info)
if 'model_mixins' not in basemodel_metadata:
basemodel_metadata['model_mixins'] = {}
for base_info in self.model_classdef.info.mro[1:]:
if base_info.fullname() != 'builtins.object':
basemodel_metadata['model_mixins'][base_info.fullname()] = 1
def process_model_class(ctx: ClassDefContext,
django_context: DjangoContext) -> None:
initializers = [
@@ -241,7 +229,6 @@ def process_model_class(ctx: ClassDefContext,
AddRelatedManagers,
AddExtraFieldMethods,
AddMetaOptionsAttribute,
RecordAllModelMixins,
]
for initializer_cls in initializers:
try: