我有一堆应用,可能包含也可能不包含名为activity.py
的文件。该文件基本上记录模型信号。当我在ready
类的AppConfig
方法中导入此文件时,它运行良好。问题是我有十几个应用程序,所以我不想在我的所有应用程序中使用相同的方法:
def ready(self):
# register signal for activity feed
from . import activity
我想运行一个通过INSTALLED_APPS
数组的脚本,如果此应用包含文件activity.py
,请将其导入。
我无法找到一种方法来运行一个函数,以便在所有应用程序准备好之后,以及服务器正在收听之前。
答案 0 :(得分:1)
您可以做的一件事是创建另一个应用程序,其唯一目的是执行初始化并将其放在INSTALLED_APPS
中。在该应用中,子类AppConfig
并覆盖AppConfig.ready()
方法。
答案 1 :(得分:0)
您可以尝试使用以下方法:
from django.conf import settings
from importlib import import_module
for app in settings.INSTALLED_APPS:
module_name = '%s.%s' % (app, "activity")
try:
import_module(module_name)
except ImportError:
pass