Включение приложения Django в url.py приводит к 404

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

/mysite/urls.py

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

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

Ответ 1

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

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

Вам не нужно gallery в включенном Urlconf.

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

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

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