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