from django.db.models import get_model
modelname=get_model('base','reports')
以上代码在views.py和django shell中运行正常,但在从 init .py
调用时返回null文件夹结构如下所示
projectsfolder
- 基
---- models.py
---- views.py
---- init .py
答案 0 :(得分:0)
那可能无法奏效。 __init__.py
中的任何内容总是在第一次导入该目录中的任何内容时执行。但是Django必须导入这些模型才能注册它们,所以你已经陷入鸡与蛋的境地:它不会注册它们直到它们进口它们,但是你要尝试在他们导入模型时获取模型......
你可以解释一下你为什么不做from models import Reports
?
答案 1 :(得分:0)
我仍然不知道为什么上面的代码只能用于 __ init __ .py。但是下面的代码对我有效。
modelname=get_model('base', k['tablename'], seed_cache=False, only_installed=False).
django fixtures也是初始化db的更好方法。 :):)