3

iPython を使用してやり取りしている Django 製品を持っています。

シェルの起動時にモジュールを自動的にロードしようとしています:

python manage.py シェル

.ipython/ipythonrc をプロジェクトのルート ディレクトリにコピーし、ファイルに追加しました。

import_some module_name モデル1 モデル2

ただし、シェルを起動すると、これらの名前が読み込まれません。

私は何を間違っていますか?

4

3 に答える 3

5

ipythonrcについてはわかりませんが、モデルのみが必要な場合は、を使用できますdjango-extensions。インストールすると、shell_plusipythonセッションを開き、すべてのモデルを自動ロードするを含む、多数の新しい管理コマンドが得られます。

python manage.py shell_plus
于 2009-07-01T16:53:19.990 に答える
1

BryanWheelock あなたのシェルはスポーンの結果であり、シェルとの直接的な相互作用ではないため、あなたのソリューションは機能しません。あなたがやりたいことはこれです-または少なくともこれは私がしていることです.

ワークスペース ( を入力した場所python manage.py shell) 内に ipythonrc ファイルを作成します。その中に以下を入れます。

include ~/.ipython/ipythonrc

execute from django.contrib.auth.models import User
# .
# .
# .
execute import_some module_name model1 model2

たとえば、次の行も追加します。

# Setup Logging
execute import sys
execute import logging
execute loglevel = logging.DEBUG
execute logging.basicConfig(format="%(levelname)-8s %(asctime)s %(name)s %(message)s", datefmt='%m/%d/%y %H:%M:%S', stream=sys.stdout )
execute log = logging.getLogger("")
execute log.setLevel(loglevel)
execute log.debug("Logging has been initialized from ipythonrc")
execute log.debug("Root Logger has been established - use \"log.LEVEL(MSG)\"")
execute log.setLevel(loglevel)
execute log.debug("log.setlevel(logging.DEBUG)")
execute print ""

これにより、モジュールでログを使用して DRY に保つことができます。お役に立てれば。

于 2009-08-19T23:19:52.270 に答える