【问题标题】:Django Password Reset - DoesNotExist exceptionDjango 密码重置-DoesNotExist 异常
【发布时间】:2011-09-03 11:03:03
【问题描述】:

在输入电子邮件地址并按下按钮后,我的 Django 站点的 password_reset 页面导致 DoesNotExist 异常。

密码重置功能所需的四个网址在(主项目)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 异常,其值为“站点匹配查询不存在”。

网址和模板似乎可以正常工作,并且在手动访问时正确显示 password_reset/done。
引用的模板是原始 Django 模板的精确副本,只是添加了页眉/页脚。不使用自定义视图/模板的密码重置会导致相同的错误。

任何关于可能导致此问题的想法将不胜感激。

【问题讨论】:

    标签: python django django-authentication


    【解决方案1】:

    该错误“站点匹配查询不存在”意味着 settings.py 中的 SITE_ID 与数据库中的实际 Site 对象不匹配。检查您网站的id 属性,并确保它与SITE_ID 相同。

    【讨论】:

    • settings.py 中的SITE_ID 是 1,我不会(至少故意)在其他任何地方更改它。在发生错误时显示的请求信息的设置部分中,SITE_ID 也是 1,但这似乎直接来自 settings.py。 password_reset 视图中的某些内容是否可能会自动更改 id?
    • 这个错误非常明显;只有一件事会导致这种情况。检查您的数据库并确保 site_id 为 1。
    • 看起来数据库中根本没有Site 对象-当我添加一个对象时,它被赋予id 1,现在密码重置工作完美-感谢您的帮助.
    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2019-02-26
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多