我有一个包含Django应用程序的repo,然后是需要对应用程序后面的数据库执行各种操作的一些脚本。理想情况下,我很乐意使用Django ORM对该数据库进行编辑和更新,因为Django给我留下了一些非常难看的MYSQL表名(my_app_sometablename)。通过ORM执行此操作对于一致性原因以及ORM首先存在的所有其他原因也很好。“在Django应用程序之外导入Django模型时没有名为”Error“的模块
无论如何,我在从应用程序外部正确导入Django模型时遇到了很多困难。我试过编辑我的PYTHONPATH,并且我试过像50种不同的方式导入,并且仍然没有骰子。该结构是这样的:
repo/
__init__.py
django_app/
__init__.py
sub1a/
__init__.py
models.py
scripts/
__init__.py
some_script.py
我试图做的事:
from django_app.sub1a.models import SomeModel
其实我可以得到的那部分工作,如果我添加的路径,回购到我的Python路径,但随后当我尝试用做类似的东西我什么进口:
res = SomeModel.objects.filter(**kwargs)
我得到:
...
File "/path/to/.virtualenvs/repo/lib/python2.7/site-packages/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name, True)
File "/path/to/.virtualenvs/analyticsv2/lib/python2.7/site-packages/django/db/models/loading.py", line 86, in load_app
app_module = import_module(app_name)
File "/path/to/.virtualenvs/analyticsv2/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
ImportError: No module named sub1a
我在做什么错?我如何解决它?这让我疯狂。
是的,但某些脚本真的什么都没有做的应用程序,也有很多人。强迫所有人通过Django管理运行似乎凌乱。我们已经通过django管理员做了一些事情,但是我希望分开保存和运行这些脚本。 – Eli 2013-05-03 08:58:57
@Eli这与管理网站无关,它们是通过'manage.py'运行的独立管理脚本。 – 2013-05-03 09:28:14
@DanielRoseman我知道。我仍然不想运行我需要的每个脚本,通过manage.py访问django数据库。我想要的东西与应用程序直接相关,没有别的。 – Eli 2013-05-03 09:34:58