2011-06-24 1 views
1

OK - 私は数ヶ月間Djangoに取り組んできましたが、奇妙な問題に遭遇しました。それを設定するには、私のwebapp構造体です。Djangoのインポートモデル

メインのDjangoプロジェクトは、cpmと呼ばれています。 私はcpmフォルダに複数のdjangoアプリケーションを持っています。各アプリ内で、私は自分のmodels.pyファイルを持っています。私が作成したいとき

は今、/ Iのようなものだろう他のアプリからの利用モデル:productsという名前のアプリを想定し

from cpm.products.models import * 

が存在していました。最近、私はいくつかのエラー、例えば、cannot import XYZ from productsのようなものを始めました。私はちょうどcpm.部分を落とし、今それが動作

from products.models import * 

from cpm.products.models import * 

:だから、多くの検索後、私はラインを変更しました。

これはなぜ起こっているのですか?私のアプリケーションの一部でしか起こっていないようです(私はCPMプロジェクト内に束を持っています)。私が前進するにつれ、構文が正確であることを確認したい。

ありがとうございます!

答えて

5

プロジェクトルートのディレクトリが途中のpythonパスから削除されているか、ルートの__init__.pyファイルを削除しました。

*をインポートすると、特に多くのアプリを追加するときに問題が発生します。 from products import models as prod_modelsを実行することを検討してください。その後、モデルを参照する必要があるprod_models.MyModelを実行します。

+0

興味深い。私は今夜​​(./manage startapp)新しいアプリケーションを作成し、 "古い" appディレクトリに存在しないディレクトリに__init.py__というファイルがあることに気付きました。あなたはこれを参照していますか? モデルのインポートに関するヒントをありがとう。私は自分のコードを修正することが確実になります。 – Garfonzo

関連する問題