【问题标题】:Password reset not working in Django 1.6.1密码重置在 Django 1.6.1 中不起作用
【发布时间】:2014-01-30 13:26:51
【问题描述】:

我正在使用 Django 1.6.1,密码重置让我非常头疼。用户输入他们的电子邮件并收到 502,我收到了这个:

Traceback (most recent call last):

  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py", line 99, in _wrapped_view
    response = view_func(request, *args, **kwargs)

  File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/views.py", line 158, in password_reset
    form.save(**opts)

  File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/forms.py", line 256, in save
    email = loader.render_to_string(email_template_name, c)

  File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py", line 164, in render_to_string
    return t.render(Context(dictionary))

  File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 140, in render
    return self._render(context)

  File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 134, in _render
    return self.nodelist.render(context)

  File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 840, in render
    bit = self.render_node(node, context)

  File "/usr/local/lib/python2.7/dist-packages/django/template/base.py", line 854, in render_node
    return node.render(context)

  File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py", line 447, in render
    six.reraise(*exc_info)

  File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py", line 433, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)

  File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 509, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))

  File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 429, in _reverse_with_prefix
    (lookup_view_s, args, kwargs, len(patterns), patterns))

NoReverseMatch: Reverse for 'auth_password_reset_confirm' with arguments '('MQ', u'3op-83ceb0bee07385a12e2a')' and keyword arguments '{}' not found. 0 pattern(s) tried: []

urls.py 的相关部分(我重新定义了它们而不是导入默认的conf,因为我想更改url):

url(r'^password/change/$',
    auth_views.password_change,
    name='auth_password_change'),
url(r'^password/change/done/$',
    auth_views.password_change_done,
    name='password_change_done'),
url(r'^password/reset/$',
    auth_views.password_reset,
    name='auth_password_reset'),
url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
    auth_views.password_reset_confirm,
    name='password_reset_confirm'),
url(r'^password/reset/complete/$',
    auth_views.password_reset_complete,
    name='auth_password_reset_complete'),
url(r'^password/reset/done/$',
    auth_views.password_reset_done,
    name='password_reset_done'),

有什么帮助吗?我不知道如何解决这个问题。

【问题讨论】:

    标签: python django django-authentication


    【解决方案1】:
    NoReverseMatch: Reverse for 'auth_password_reset_confirm'
    

    你有:

    url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
        auth_views.password_reset_confirm,
        name='password_reset_confirm'),
    

    该网址的名称属性看起来应该是auth_password_reset_confirm

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2019-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-15
        • 1970-01-01
        • 1970-01-01
        • 2016-04-30
        • 2015-08-26
        相关资源
        最近更新 更多