首页 文章

Django密码重置 - DoesNotExist异常

提问于
浏览
2

输入电子邮件地址并按下按钮后,我的Django站点的password_reset页面导致 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模板的精确副本,只添加了页眉/页脚 . 密码重置而不使用自定义视图/模板会导致相同的错误 .

关于可能导致这种情况的任何想法将不胜感激 .

1 回答

  • 2

    该错误,"Site matching query does not exist"表示settings.py中的 SITE_ID 与数据库中的实际 Site 对象不匹配 . 检查您网站的 id 属性,并确保它与 SITE_ID 相同 .

相关问题