Django url中的单字符参数问题

时间:2014-09-28 20:24:58

标签: django django-urls

我有以下urlpattern:

url(r'exp/users/(?P<userid>\w.+)/$', 'myapp.views.users_view_by_id', name='users_id'),

当用户ID是单个数字时(例如&#39; 1&#39;)我得到404 Page Not Not Found但当它超过一位数时,该页面会按预期响应(例如&#39; 10&#39; ;)

因此'../exp/users/10/'工作正常,但'.../exp/users/1/'会返回404。

2 个答案:

答案 0 :(得分:3)

你的正则表达式中有一个额外的.

\w.+表示&#34;一个字母数字字符,然后是一个或多个字符&#34;。你想要的只是\w+,这意味着&#34;一个或多个字母数字字符&#34;。

修改

如果你想要包含文字&#34;。&#34;在可以接受的字符中,使用方括号来定义类:

(?P<userid>[\w.]+)

答案 1 :(得分:0)

如果您想匹配一个或多个数字,请使用(?P<userid>\d+)

您当前的正则表达式需要一个字符与\w&#39;匹配,后跟至少一个匹配.+的字符。