2010-05-26 6 views
10

Ich habe den folgenden Code in der URLs.py in meinem Projekt.Einschließlich einer Django-App url.py führt zu einem 404

/mysite/urls.py

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

Dies in einer 404-Seite führt, wenn ich versuche, eine URL in der Galerie/urls.py gesetzt zuzugreifen.

/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 Fehler

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. 

Auch ist die Website auf einem Medium Tempel gehostet (dv) Server und mit mod_wsgi

Antwort

17

Entfernen Sie die $ aus der Regex von Haupt urls.py

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

Sie brauchen nicht gallery in der mitgelieferten URLconf.

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

Lesen Sie die django docs für weitere Informationen

Beachten Sie, dass die regulären Ausdrücke in diesem Beispiel haben keine $ (End-of-String Match-Zeichen) aber einen Schrägstrich enthalten. Wenn Django auf include() stößt, wird der Teil der URL, der bis zu diesem Punkt übereinstimmt, abgehackt, und sendet die verbleibende Zeichenfolge an die enthaltene URLconf zur weiteren Verarbeitung.

+0

Danke! Es klappt :) – 828