from importlib import import_module from django.apps import apps from django.utils.module_loading import module_has_submodule def get_app_modules(): """ Generator function that yields a module object for each installed app yields tuples of (app_name, module) """ for app in apps.get_app_configs(): yield app.name, app.module def get_app_submodules(submodule_name): """ Searches each app module for the specified submodule yields tuples of (app_name, module) """ for name, module in get_app_modules(): if module_has_submodule(module, submodule_name): yield name, import_module(f"{name}.{submodule_name}")