Django - enable application URL

I have the following structure (Django 1.4):

containing_dir/ myproject/ myapp1/ myapp2/ myapp3/ 

myproject, myapp1, myapp2 and myapp3 have init .py, so they are all modules.

In manage.py (under contains_dir) I have os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

in myproject.settings i define:

 [..] ROOT_URLCONF = 'myproject.urls' INSTALLED_APPS = ( [..] 'myproject.myapp1', 'myproject.myapp2', 'myproject.myapp3', ) [..] 

In myapp1.urls.py, I define:

 urlpatterns = patterns('myapp1', url(r'^agent/$', 'views.agent', name='agent') ) 

and I'm trying to import it into myproject.urls. I am trying to import myapp1 urls like this:

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

but whenever I try to load load localhost:8000/myapp1/agent , I get

 Exception Value: No module named myapp1 

I think I challenged myapp1.urls

Any help? thanks

+6
source share
4 answers

You must have

 __init__.py 

inside your "myproject" directory. When you speak:

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

you say: "myproject" (as well as myapp1) is a python package.

+6
source

The following changes have been made to myproject.settings:

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

Does ROOT_URLCONF need to point to myproject.urls ?

If you place your applications inside myproject , you need to use the correct view prefix .

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

Try:

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

All Articles