2011-08-03 61 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})/ $'' –