2011-08-03 57 views
0

我跟着这里的代码:这里 http://drumcoder.co.uk/blog/2010/apr/09/django-reset-password/ 还有: http://shrenikp.webs.com/apps/blog/entries/show/7133721-implement-forgot-password-on-customer-ui- 这里: http://blog.montylounge.com/2009/07/12/django-forgot-password/忘记密码功能,Django的

这是我目前希望继续努力,我有它的代码目前

[base.html文件]

  <form name="login_form" action="/login/" method="post" accept-charset="utf-8" style="display: inline"> 
       {% csrf_token %} 
       Username: <input type="text" name="username" value="" /><br /> 
       Password: <input type="password" name="password" value="" /><br /> 
       <input type="submit" value="submit" value = "" id ="submit" /> 
       <p><a href="{% url password_reset %}">Forgot password?</a></p> 
      </form> 

[url.py]

urlpatterns = patterns('', 
    url(r'^password_reset/$', 'django.contrib.auth.views.password_reset', name='password_reset'), 
    (r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done'), 
    (r'^reset/(?P[0-9A-Za-z]+)-(?P.+)/$', 'django.contrib.auth.views.password_reset_confirm'), 
    (r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'), 
) 

我得到一个错误是这样的:

unknown specifier: ?P[ 

由于某种原因,该行错误...(R'^重置/(P [0? -9A-Za-z] +) - (?P。+)/ $' 有帮助吗?

回答

1

你将需要把它改成这样:

(r'^reset/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$', 'django.contrib.auth.views.password_reset_confirm') 

你需要在你的模板里面<form>马克机后添加的标签{% csrf_token %}。试试看。

+0

是的,谢谢!那就是诀窍。但现在我有这个错误禁止(403) CSRF验证失败。请求中止。你能帮助我吗? – Angie

+0

我编辑了我的答案,希望能帮助你的下一个问题。 – Luke

+0

wierd,我查了一下django lib正在使用的url规则和它的:'(r'^ account/reset /(?P [0-9A-Za-z] {1,13}) - (?P [0-9A-ZA-Z] {1,13} - [0-9A-ZA-Z] {1,20})/ $'' –