2011-02-04 14 views

答えて

1

shell_plusが私のモデルを自動ロードしていなかったときはいつも、モデルにエラーがあり、自動ロードが失敗することがあったからです。

シェルプラスを開いて、手動でモジュールを手動でロードしようとするとどうなりますか?しようとする

from app.models import ModelName 

もう一つは、設定ファイルのデフォルトのDjangoのアプリケーション以外のアプリケーションのすべてをオフにして、彼らはうまく自動ロードかどうかを確認することです。そうした場合は、徐々に機能が停止するまで、一度に1つずつ複数のアプリをゆっくりと追加してください。どのモデルに問題があるかを知ることができます。どのモデルが問題を抱えているかを知ると、何が起きているのかを簡単に知ることができます。

私が持っていた最も一般的なエラーは、2つの異なるモデル(このモデルはそのモデルに依存しますが、まだ読み込まれていませんでした。逆も同様です)に周期的な依存関係がありました。

希望に役立ちます。

1

shell_plus - Djangoのシェルの拡張版。すぐに をORMで動作させるように、すべてのモデルを に自動ロードします。 https://github.com/django-extensions/django-extensions/wiki/Current-Command-Extensions

に位置ジャンゴ・エクステンションのgithubののwikiから

の引用は、その設計されたが、すぐにALLモデルを自動ロードするために、その実際の変更を信じてはいけません。

+0

それは私のモデルのいずれかをロードしません。 –

+0

@ Jason-Swett、おそらくあなたのモデルのいずれかに問題があり、これが原因でモデルが正しく読み込まれません。詳細は私の答えを見てください。 –

0

codeによる。 shell_plusは常にすべてのモデルをロードします。

1

私はいくつかのモデルを無視することを可能にするshell_plus拡張のための新しいパッチを作った。 https://github.com/django-extensions/django-extensions/pull/99が受け入れられるのを待っています。

+0

投稿を更新しませんでしたが、このパッチは現在アップストリームリリースにあります。 :) – xeor

0

デフォルトでは、shell_plusは常にすべてのモデルを読み込みます。 @xeorのおかげで、設定でSHELL_PLUS_DONT_LOADオプションを使用して、モデルの一部をスキップすることができます。 名前の衝突を避けるために、モデルにエイリアスを設定することもできます。

詳細:私にとって http://django-extensions.readthedocs.org/en/latest/shell_plus.html?highlight=shell_plus#configuration