2010-05-26 1 views
10

У меня есть следующий код в urls.py в проекте mysite.В том числе url.py приложения Django приводит к 404

/mysite/urls.py

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

Это приводит к 404 странице, когда я пытаюсь получить доступ к URL, установленный в галерее/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 ошибки

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. 

Кроме того, сайт размещен на медиа храме (DV) сервера и использованием mod_wsgi

ответ

17

Удалить $ из регулярного выражения основного urls.py

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

Вам не нужно gallery в прилагаемых привязках.

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

Прочитайте django docs для получения дополнительной информации

Обратите внимание, что регулярные выражения в данном примере не имеют (матч символ конца-строки) в $, но действительно включают слэш. Всякий раз, когда Django встречает include(), он отрубает любую часть URL, сопоставленную с этой точкой, и отправляет оставшуюся строку включенному URLconf для дальнейшей обработки.

+0

Спасибо! Оно работает :) – 828