2013-04-08 2 views
6

I имеет следующую структуру (Django 1.4):Джанго - включает в себя приложение URLs

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. Я пытаюсь импортировать URL-адреса myapp1 следующим образом:

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

, но всякий раз, когда я пытаюсь ло нагрузку localhost:8000/myapp1/agent я получаю

Exception Value: No module named myapp1 

Я думаю, выброшен из жгутов myapp1.urls

Любая помощь? спасибо

ответ

0

Нужно ли ROOT_URLCONF указать на myproject.urls?

Если вы разместите свои приложения внутри myproject, вам необходимо использовать надлежащее view prefix.

urlpatterns = patterns('myproject.myapp1', 
... 
+1

да, потому что я хочу, чтобы создать многоразовые и съемные приложения. – pistacchio

+0

@pistacchio. Тогда вам, скорее всего, потребуется создать сценарий установки для приложений, чтобы они добавились к пути python. Или вручную добавьте их. – Ngenator

6

Вы должны иметь файл

__init__.py 

внутри директории "MyProject". Когда вы говорите:

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

вы говорите «MyProject» (а также myapp1) является питон Упаковка в.

3

В myproject.settings сделать следующие изменения:

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

Try:

urlpatterns = [ 
    ... 
    url(r'^app_name/', include('app_name.urls', namespace='project_name')) 
    ... 
] 
Смежные вопросы