Включение url.py приложения Django приводит к 404 - PullRequest
10 голосов
/ 26 мая 2010

У меня есть следующий код в файле 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 / галерея / 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 Ответ

17 голосов
/ 26 мая 2010

Удалите $ из регулярного выражения main 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 для дальнейшей обработки.

...