4

私は Django を初めて試しており、django チームが提供するチュートリアルに従おうとしています。

新しいプロジェクトを作成した後、チュートリアルで説明されているように、次のフォルダー/ファイル構造を取得します。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

私が実行するアプリを作成するとき:

python manage.py startapp polls

...これにより、manage.pyファイルと同じフォルダーにアプリの「投票」が作成されます-これにより、次のことが得られます。

mysite/
    manage.py
    polls/
        __init__.py
        admin.py
        models.py
        tests.py
        views.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

これは、私が作成したアプリがプロジェクト フォルダーの外に作成されることを意味しますが、もちろん、これは当てはまりません。プロジェクトフォルダー内にmanage.pyを移動しようとしました。しかし、私がそれを実行すると:

python manage.py syncdb

...次のエラーが表示されます。

raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" %     (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'testproject.settings' (Is it on sys.path?): No     module named testproject.settings

アプリを手動でプロジェクト フォルダーに移動できると思いますが、これは行う必要のないことです。

したがって、チュートリアルで何かが間違っているか (信じがたいことです)、またはここで何かを見逃しています (可能性が高い)。

前もって感謝します。

4

3 に答える 3

7

これが新しい適切なレイアウトです。「mysite/mysite」はアプリ、「mysite/polls」はアプリです。「mysite」親フォルダーはプロジェクト フォルダーです。

于 2013-02-27T21:43:24.883 に答える
3

@holyredbeard は正しいレイアウトです。古いドキュメントを読んでいますか?

役に立つ読み物: http://www.tdd-django-tutorial.com/blog/articles/2012/tutorials-updated-django-14-and-its-weird-new-fold/

アプリとプロジェクト フォルダーの外側に配置する必要がある manage.py を移動しないでください。

1.4以降の一般的なレイアウト例...

project_root/
   project_name/
       media/
       static/
       static_root/ (in production)
       templates/some_app/foo.html (overriding some_app at project level)
                /admin/some_app/some_model/change_list.html
                (overriding admin changelist for some_app.models.some_model)
       settings.py
       settings_deployment.py
       urls.py
   some_app/
       templates/some_app/foo.html
       urls.py
       views.py
       models.py
   manage.py
于 2013-02-27T21:45:04.163 に答える
1

これは、バージョン 1.4 以降の公式のレイアウトです。

背後にある理論的根拠は、リリース ノートで詳しく説明されてい ます。

移動しないでくださいmanage.py。一般に、Django 独自のスクリプトは常に正しいことを行うと期待できます。動作させるためだけにファイルを移動する必要はありません。

于 2013-02-27T21:52:29.743 に答える