无法在Django的URL.conf中匹配URL?
我哪里做错了?
Django的调试日志:
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/login/
Using the URLconf defined in dealers.urls, Django tried these URL patterns, in this order:
^login|home/ ^login/$
^login|home/ ^home/$
^login|home/ ^home/dealer/(?P<dealer_id>\d+)/$
^admin/
The current URL, login/, didn't match any of these.
urls.py文件:
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^login|home/',include('dealerpanel.urls')),
(r'^admin/', include(admin.site.urls))
)
dealerpanel/urls.py:
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('dealerpanel.views',
(r'^login/$','login'),
(r'^home/$','home'),
(r'^home/dealer/(?P<dealer_id>\d+)/$','details')
)
2 个回答
0
在你的 dealerpanel/urls.py
文件中添加类似下面的内容,这样当你访问 http://localhost:8000/login/
时,就会触发 dealerpanel.views.target_view
这个视图:
urlpatterns = patterns('dealerpanel.views',
...
(r'','target_view'),
)
这意味着在 login
(或者 home
)后面什么都不写,就会匹配到 target_view
。
4
## urls.py
urlpatterns = patterns('',
(r'',include('dealerpanel.urls')),
(r'^admin/', include(admin.site.urls))
)
把包含 dealerpanel.urls
的前缀改成空字符串。我觉得你现在的结构会让它去找一个像这样的网址:
/login/login/
/login/home/
/home/login
...