2012-04-07 9 views
3

私は1.2日で開発したdjangoアプリを持っています。私は今1.4のプロジェクトフォーマットに移植しようとしています。'app'レベルのdjango 1.4でのインポートは可能ですか?

次のように私のプロジェクトを設定した古い方法だった:

django_project/ 
    settings.py 
    manage.py 
    urls.py 
    app1/ 
    app2/ 
    app3/ 

は、私はそれが新しいmanage.pyを使用するように変更することだし、私のディレクトリは、次のようになります。

django_project/ 
    manage.py 
    project 
     urls.py 
     wsgi.py 
     app1/ 
     app2/ 
     app3/ 

問題は私のコード全体で次のようなものをインポートすることです:

from app1.models import SomeModel 

これは今私にインポートエラーを与えます。これを修正すると:

from project.app1.models import SomeModel 

私は実際にすべてのインポートを変更するために私のプロジェクトを通過する必要はありませんしたくありません。私は行方不明のものがありますか?簡単な方法がありますか?それともあなたはそれをやるべきか?

+1

将来参照すると、これはIDEのリファクタリングツールが行うべきことのようなものです。 – aaronasterling

+0

1.4へ移動している他の人への注意:プロジェクトルート( ''モジュールとすべてのアプリケーションを含むフォルダ)から、 '__init __。py'を削除してください。私はそれが1.3に付属していたものか、それとも事故でそれを置いたのかどうかはわかりませんが、テストを実行するために新しい 'manage.py'を使うときは、あなたのインポートを破るでしょう。 – hangtwenty

答えて

4

あなたのアプリをprojectモジュールに入れないでください。 Djangoのstartappは以前と同じようにプロジェクトルートに配置します。 projectモジュールは、プロジェクト全体の設定、URLなどのための場所です。あなたのアプリは、プロジェクトルートの外にいなければなりません。

1

現在のレイアウトを維持することができます。これは正常に動作するためです。新しいプロジェクトでは、あなたのアプリを 'プロジェクト'モジュールの中に入れることができると思います。 1.4 Release Notesを確認すると、それが推奨されるレイアウトであることがわかります。しかし、ジェネリックアプリを開発している場合(おそらく、複数のプロジェクトで使用できる)、おそらくプロジェクトルートが良いでしょう。

関連する問題