解耦URLConfs(Python / Django):当前URL与ERROR后的任何URL模式都不匹配

时间:2012-03-27 20:13:22

标签: python django

我刚开始自学python / django并且一直在关注django教程。我一直陷入URLConfs的脱钩。我已将代码复制到教程中的相应文件中,但我收到此错误:

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:

    ^polls/ ^/$
    ^polls/ ^/(?P<poll_id>\d+)/$
    ^polls/ ^/(?P<poll_id>\d+)/results/$
    ^polls/ ^/(?P<poll_id>\d+)/vote/$
    ^admin/
The current URL, polls/, didn't match any of these.

我按照教程(https://docs.djangoproject.com/en/dev/intro/tutorial03/)的要求在mysite和polls文件夹中都有urls.py

1 个答案:

答案 0 :(得分:2)

简答:删除/上网址配置中的第一个polls.urls

长解释: 这里的问题正如Julian在评论中提到的那样,你在URL配置中有一个额外的斜杠。

如果您的根URL配置中包含以下内容:

url(r'^polls/', include('polls.urls')),

这实际上“切断”了URL字符串的polls/部分,并将其余部分传递给polls.urls。因此,如果您尝试获取网址polls/13/resultspolls/将由my site.urls处理,其余的将提供给polls.urls

然而,您的polls.urls文件似乎要求字符串前面有/,并且因为它已被删除,所以它不存在。插入符^字符表示字符串的开头,因此当前所需的所有配置/收到polls.urls时以/polls//13/results 开头他们,他们不应该这样做,否则你期待以下:

/polls/13/results

而不是:

{{1}}

我希望这能解决所有问题!