Django アプリを含むレポと、アプリの背後にあるデータベースに対してさまざまなことを行う必要があるいくつかのスクリプトがあります。理想的には、Django ORM を使用してこのデータベースの編集と更新を行いたいと思っています。Django ではかなり醜い MYSQL テーブル名 (my_app_sometablename) が残るためです。ORM を介してそれを行うことも、一貫性の理由と、ORM が最初に存在する他のすべての理由から良いでしょう。
とにかく、アプリの外部から 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
私は何を間違っていますか?どうすれば修正できますか?これは私を夢中にさせています。