web-dev-qa-db-ja.com

Django-アプリのURLを含める

私は次の構造を持っています(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を使用せずにスローされたと思います

何か助けはありますか?ありがとう

11
pistacchio

あなたは持っている必要があります

__init__.py

「myproject」ディレクトリ内のファイル。あなたが言う時:

(r'^myapp1/', include('myproject.myapp1.urls'))

「myproject」(およびmyapp1)はpython packegeです。

6
Raydel Miranda

Myproject.settingsで、次の変更を行います。

INSTALLED_APPS = (   
[..]
'myapp1',
'myapp2',
'myapp3',
)
3
Tejas

この問題を解決するには、PyCharmで「myproject」ディレクトリを選択し、これをソースルートとして設定します。プロジェクトは、特定のアプリをどのルートから検索する必要があるのか​​わかりません。それは私のために問題を修正しました。ありがとうございました。

0
vinoth10

ROOT_URLCONFmyproject.urlsを指す必要がありますか?

アプリをmyproject内に配置する場合は、適切な プレフィックスの表示 を使用する必要があります。

urlpatterns = patterns('myproject.myapp1',
...
0
Ngenator

試してください:

urlpatterns = [
    ...
    url(r'^app_name/', include('app_name.urls', namespace='project_name'))
    ...
]
0
Vaishnav Mhetre