首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用参数时出现Django URL错误

使用参数时出现Django URL错误
EN

Stack Overflow用户
提问于 2016-01-21 06:22:03
回答 1查看 42关注 0票数 0

我是Django的新手,所以我预计会有一些混乱,但是我认为这一个很有趣,所以我对以下内容感到困惑,我有链接A和链接B(两者都做同样的事情)……

urls.py

代码语言:javascript
复制
url(r'^testing/([\w\s-].+)/(?P<id>[0-9]+)$', 'testapp.views.test_view', name='test'),

模板页面

代码语言:javascript
复制
<a href="{% url 'test' i.name i.id %}">{{i.name}}</a>
<a href="{% url 'test' i.name i.id %}">{{i.name}}</a>

链路A通过,而链路B产生以下错误:

代码语言:javascript
复制
Exception Type: NoReverseMatch

Reverse for 'test' with arguments '('8', '109404')' and keyword arguments '{}' not found. 1 pattern(s) tried: ['test/([\\w\\s-].+)/(?P<id>[0-9]+)$']

我尝试过封装参数,仔细检查传递的数据,甚至尝试通过链路A和链路B传递相同的数据。

有没有人有同样的问题?我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-01-21 06:27:56

问题出在你的第一个捕获组中:

代码语言:javascript
复制
r'([\w\s-].+)'

在这里,首先有一个不带限定符的字符集:[\w\s-]。这与单个字符匹配。然后有一个带有+量词的点(任意字符),即一个或多个。这意味着您至少需要两个字符:一个匹配的[\w\s-]和一个或多个匹配的.+

您可能想要捕获第一个字符集一次或多次,例如:

代码语言:javascript
复制
r'([\w\s-]+)'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34911774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档