Есть ли способ перечислить все модули Python непосредственно под указанной моделью в иерархии?
У меня есть веб-приложение Django, которое медленно развивается, и я реорганизовал его на основена этой статье:
http://paltman.com/2008/01/29/breaking-apart-models-in-django/
Однако я пытаюсь улучшить его технику, используя интроспекцию в файле инициализации модуля (__ init __.py), чтобыавтоматически определять все экземпляры класса модели Django в подчиненных заданиях.У меня такой вид работает, но ему все еще нужен статический список модулей в дереве над ним для работы.
В случае, если людям интересно, вот как выглядит мое решение:
from django.db.models.base import ModelBase
from sys import modules
moduleList = ['TechTree', 'PilotAbilities']
__all__ = []
for moduleName in moduleList:
fullyQualifiedModuleName = '%s.%s' % (__name__, moduleName)
moduleObj = __import__(fullyQualifiedModuleName)
__all__ += [item for item in dir(moduleObj) if isinstance(getattr(moduleObj, item), ModelBase)]