2014-09-28 45 views
2

我有以下URLPATTERN:单字符参数问题

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

当用户ID是一个数字(例如“1”),我得到一个404页面没有找到,但是当它是多单数字页面按预期做出响应(例如'10')。

所以'../exp/users/10/'工作正常,但'.../exp/users/1/'如果你想匹配一个或多个数字,然后用(?P<userid>\d+)返回一个404

回答

3

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

\w.+的意思是“一个字母数字字符,然后是一个或多个任何字符”。你想要的只是\w+,这意味着“一个或多个字母数字字符”。

编辑

如果要包括字符 “”在可以接受的字符中,使用方括号来定义类:

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

某些id带有a。 (例如'user.1234'),这就是为什么我包括一个。我如何处理这两种情况? – greenafrican 2014-09-28 20:45:55

0

您当前的正则表达式需要一个字符匹配\w',后面至少有一个字符匹配.+