0

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

私は何を間違っていますか?どうすれば修正できますか?これは私を夢中にさせています。

4

1 に答える 1

3

必要なタスクを実行する独自の django admin コマンドを実行できます。

https://docs.djangoproject.com/en/dev/howto/custom-management-commands/#howto-custom-management-commands

于 2013-05-03T08:18:34.280 に答える