从__.init__.py调用时,django get_model是否返回null?

时间:2014-06-09 04:41:22

标签: django django-models django-views

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

2 个答案:

答案 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的更好方法。 :):)