2014-03-29 45 views
0

我正在尝试为用户帐户电子邮件激活系统创建URL映射。注册后,用户将收到一封带有URL的电子邮件。该链接的形式为域名/login/activate/confirmation_code /用户名。我试图弄清楚在Django的URL调度器中使用命名组,所以我可以在我的视图中将confirmation_code和username作为参数传递给def。但是,我似乎无法弄清楚。感谢您的任何帮助。 我一直引用:https://docs.djangoproject.com/en/dev/topics/http/urls/Django名称组Urls.py

我urls.py:

from django.conf.urls import patterns, url 
from login import views 

urlpatterns = patterns('', 
    url(r'^register/$', views.registration, name='index.html'), 
    url(r'^authenticate/$', views.authenticateLogin, name='index.html'), 
    url(r'^authenticateUser/$', views.authenticateUser, name='index.html'), 
    url(r'^activate/(?P<confirmation_code>\d{4}/?P<username>\d{4})/$', views.activate) 
) 

错误消息:

Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: 
^admin/ 
^blogadmin/ 
^ ^$ [name='index'] 
^ ^about/$ [name='about'] 
^ ^contact/$ [name='contact'] 
^ ^$ [name='index'] 
^login/ ^register/$ [name='index.html'] 
^login/ ^authenticate/$ [name='index.html'] 
^login/ ^authenticateUser/$ [name='index.html'] 
^login/ ^activate/(?P<confirmation_code>\d{4})/(?P<username>\d{4})/$ [name='activate'] 
^blog/ 
^webstore/ 
^companion/ 
The current URL, login/activate/o5y0WONgVpyXELEIuNg9xp3lCVod35JDB/pdf2e, didn't match any of these. 

感谢karthikr和极端爱国义为你的答案

分辨率:

url(r'^activate/(?P<confirmation_code>[\w]+)/(?P<username>[\w]+/)$', views.activate, {}, 'activate') 
+1

当你说'\ d {4}'它只匹配4位数。将其更改为'[\ w] +'以匹配'o5y0WONgVpyXELEIuNg9xp3lCVod35JDB' – karthikr

+0

这有效。我也不得不使用Jingo的回答。感谢你们。 – pdf2e

回答

1

您已设置为指定的组错误的括号,尝试这样的:

url(r'^activate/(?P<confirmation_code>[\w]{1,33})/(?P<username>\[\w]+)/$', 'views.activate', {}, 'activate') 

HTH :)

更新: 试着像上面,如果你的令牌最多33个字符(字母和数字) 。

+0

感谢您的回应!不幸的是,仍然没有去。获得404.我添加了错误消息。 – pdf2e