2010-05-26 7 views
10

Ho il seguente codice nella urls.py nel progetto mysite.Includendo l'url.py di un'app di Django si ottiene un 404

/mysite/urls.py

from django.conf.urls.defaults import * 
urlpatterns = patterns('', 
    (r'^gallery/$', include('mysite.gallery.urls')), 
) 

Questo si traduce in una pagina 404 quando cerco di accedere a un URL impostato in galleria/urls.py.

/mysite/gallery/urls.py

from django.conf.urls.defaults import * 
urlpatterns = patterns('', 
    (r'^gallery/browse/$', 'mysite.gallery.views.browse'), 
    (r'^gallery/photo/$', 'mysite.gallery.views.photo'), 
) 

404 errore

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: 
^gallery/$ 
The current URL, gallery/browse/, didn't match any of these. 

Inoltre, il sito è ospitato su un tempio supporti (dv) server e utilizzando mod_wsgi

risposta

17

Rimuovere il $ dall'espressione regolare del principale urls.py

urlpatterns = patterns('', 
    (r'^gallery/', include('mysite.gallery.urls')), 
) 

Non è necessario gallery nel Urlconf incluso.

urlpatterns = patterns('', 
    (r'^browse/$', 'mysite.gallery.views.browse'), 
    (r'^photo/$', 'mysite.gallery.views.photo'), 
) 

Leggi l'django docs per ulteriori informazioni

Si noti che le espressioni regolari in questo esempio non hanno un (partita carattere di fine-string) $ ma includono una barra. Ogni volta che Django incontra include(), elimina qualsiasi parte dell'URL corrispondente a quel punto e invia la stringa rimanente all'URL incluso per ulteriori elaborazioni.

+0

Grazie! Funziona :) – 828

Problemi correlati