私は次の構造を持っています(Django 1.4):
_containing_dir/
myproject/
myapp1/
myapp2/
myapp3/
_
myproject、myapp1、myapp2、およびmyapp3にはすべてinit。pyがあるため、これらはすべてモジュールです。
Manage.py(containing_dirの下)にos.environ.setdefault("Django_SETTINGS_MODULE", "myproject.settings")
があります
myproject.settingsで私は定義します:
_[..]
ROOT_URLCONF = 'myproject.urls'
INSTALLED_APPS = (
[..]
'myproject.myapp1',
'myproject.myapp2',
'myproject.myapp3',
)
[..]
_
Myapp1.urls.pyで、次のように定義します。
_urlpatterns = patterns('myapp1',
url(r'^agent/$', 'views.agent', name='agent')
)
_
そして、myproject.urlsにインポートしようとします。myapp1のURLを次のようにインポートしようとします。
_(r'^myapp1/', include('myproject.myapp1.urls'))
_
しかし、lo load _localhost:8000/myapp1/agent
_を試みるたびに
_Exception Value: No module named myapp1
_
Myapp1.urlsを使用せずにスローされたと思います
何か助けはありますか?ありがとう
あなたは持っている必要があります
__init__.py
「myproject」ディレクトリ内のファイル。あなたが言う時:
(r'^myapp1/', include('myproject.myapp1.urls'))
「myproject」(およびmyapp1)はpython packegeです。
Myproject.settingsで、次の変更を行います。
INSTALLED_APPS = (
[..]
'myapp1',
'myapp2',
'myapp3',
)
この問題を解決するには、PyCharmで「myproject」ディレクトリを選択し、これをソースルートとして設定します。プロジェクトは、特定のアプリをどのルートから検索する必要があるのかわかりません。それは私のために問題を修正しました。ありがとうございました。
ROOT_URLCONF
はmyproject.urls
を指す必要がありますか?
アプリをmyproject
内に配置する場合は、適切な プレフィックスの表示 を使用する必要があります。
urlpatterns = patterns('myproject.myapp1',
...
試してください:
urlpatterns = [
...
url(r'^app_name/', include('app_name.urls', namespace='project_name'))
...
]