要回答我自己的问题…
尽管我没有针对此问题的完全通用的解决方案,但我确实有一个足以在测试期间动态加载应用程序的解决方案。
继续上面的示例,如果我在django shell中,并且想要添加并加载一些添加到apps目录中的新应用程序,则可以
import osfrom django.conf import settingsfrom django.db.models import loadingfrom django.core import managementAPPS_DIR = '/path_to/apps/'for item in os.listdir(APPS_DIR): if os.path.isdir(os.path.join(APPS_DIR, item)): app_name = 'apps.%s' % item if app_name not in settings.INSTALLED_APPS: settings.INSTALLED_APPS += (app_name, )
接着
loading.cache.loaded = Falsemanagement.call_command('syncdb', interactive=False)


