2
在輸入電子郵件地址並按下按鈕後,我的Django站點的password_reset頁面導致DoesNotExist
異常。Django密碼重置 - DoesNotExist例外
爲密碼復位功能所需的四個URL是在(主項目)urls.py爲:
(r'^password_reset/$', 'appname.views.cust_password_reset'),
(r'^password_reset/done/', 'appname.views.cust_password_reset_done'),
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 'appname.views.cust_password_reset_confirm'),
(r'^reset/done/$', 'appname.views.cust_password_reset_complete')
以下是用於關聯的視圖的代碼:
def cust_password_reset(request):
return password_reset(request, post_reset_redirect='password_reset/done',template_name='registration/password_reset_done.html')
def cust_password_reset_done(request):
return password_reset_done(request, template_name='registration/password_reset_done.html')
def cust_password_reset_confirm(request, uidb36=None, token=None):
return password_reset_confirm(request, uidb36=uidb36, token=token,
template_name='registration/password_reset_confirm.html',
post_reset_redirect='registration/reset/done/')
def cust_password_reset_complete(request):
return password_reset_complete(request,
template_name='registration/password_reset_complete.html')
電子郵件地址被正確檢查有效性,但重定向到password_reset/done似乎沒有發生。 URL保持爲password_reset,但會導致具有值「站點匹配查詢不存在」的DoesNotExist異常。
當手動訪問時,URL和模板似乎正常工作,並且password_reset/done顯示正確。
引用的模板是原始Django模板的精確副本,只添加了頁眉/頁腳。不使用自定義視圖/模板的密碼重置會導致相同的錯誤。
任何想法可能會導致這將不勝感激。
settings.py中的'SITE_ID'是1,我不是(有意至少)在其他任何地方改變它。在發生錯誤時顯示的請求信息的設置部分中,'SITE_ID'也是1,但這似乎直接來自settings.py。有可能password_reset視圖中的某些內容可能會自動更改ID? – caroline 2011-05-30 08:14:58
該錯誤非常明確;只有一件事會導致這種情況。檢查你的數據庫,並確保site_id是1。 – 2011-05-31 14:23:05
它看起來好像根本沒有數據庫中的「Site」對象 - 當我添加一個時,它被賦予了'id' 1,現在密碼重置完美地工作 - 感謝您的幫助。 – caroline 2011-05-31 15:26:21