2010-05-26 53 views
10

我在mysite项目的urls.py中有以下代码。包括Django应用程序的url.py导致404

/mysite/urls.py

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

这导致404页,当我试图访问一个网址在画廊/ 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')), 
) 

你并不需要在包括URL配置gallery

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

阅读django docs更多信息

注意,在这个例子中,正则表达式没有$一个(结束的字符串匹配字符),但包括尾随斜线。每当Django遇到include()时,它会截断与该点匹配的URL的任何部分,并且将剩余的字符串发送到包含的URLconf以供进一步处理。

+0

谢谢!有用 :) – 828 2010-05-26 07:35:00