【发布时间】:2014-10-07 00:18:06
【问题描述】:
我正在开发一个新类来为我的 django 应用程序添加一些功能,并且需要扫描/收集从该类继承的每个类。我已经准备好在我导入的特定模块中扫描它们的一切,但我想知道最好的方法是在我的每个应用程序中扫描特定文件(只是我定义的那个) ?我知道其他一些应用程序会做这样的事情,显然 django 本身就是这样做的。我可能可以一起破解一些东西来扫描文件系统,但我想知道是否有更好/通用的方法来解决这个问题?我找不到太多关于它的信息。
我总是可以只在单个包中定义类,但由于它们与应用程序相关联,我认为最好在每个应用程序中定义它们,而不是从各处导入模型。
示例所需接口:
def get_app_implementations(module_name):
# ... What's the least hacky way to get each of the app packages?
# in a way that they can be imported using __import__ or the likes
results = []
for package in packages:
try:
scanned = __import__("{0}.{1}".format(package,module_name))
results.append(scanned)
except ImportError:
pass
return results
【问题讨论】:
标签: python django python-import