Django - Url dispatch与应用程序无匹配

时间:2011-12-07 09:40:34

标签: regex django django-urls

我有一个简单的网址与我的某个应用程序不匹配( plaq

主要网址:

urlpatterns = patterns('',
  #...
  url(r'^content/', include('content.urls')),
  url(r'^$', include('content.urls')),
  url(r'^plaq/', include('plaq.urls')),
  #...
)

plaq url.py:

urlpatterns = patterns('',
  (r'^$', pres),
  (r'pres^$', pres),
  (r'about^$', about),
  (r'privacy^$', privacy),
)

尝试访问my_host/plaq/pres给我

  

使用my_project.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
  ...
  12. ^内容/
  13. ^ plaq / ^ $
  14. ^ plaq / pres ^ $
  15. ^ plaq / about ^ $
  16. ^ plaq / privacy ^ $
  ...
  当前网址plaq / pres /与其中任何一个都不匹配。

虽然my_host/plaq显示了良好的pres视图

为什么我无法访问my_host/plaq/pres

2 个答案:

答案 0 :(得分:1)

插入符号(^)匹配字符串的开头。我想你想要,例如(r'^pres$', pres),(插话符移到前面)

答案 1 :(得分:1)

首先,您需要了解一下正则表达式:^表示字符串的开头,但由于某种原因,您最终会得到它。

其次,您的网址以斜杠结尾,因此您的网址也必须为。

urlpatterns = patterns('',
  (r'^$', pres),
  (r'^pres/$', pres),
  (r'^about/$', about),
  (r'^privacy/$', privacy),
)