升级Django和NoReverseMatch password E

2024-10-03 09:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将旧版本django1.5升级到新版本。 升级后,当我进入密码重置页面时,Django给我错误:

TypeError at /accounts/password/reset/

password_reset() got an unexpected keyword argument 'post_change_redirect'

Request Method: GET TypeErrorRequest URL: http://localhost:8000/accounts/password/reset/ Django Version: 1.6.11 Exception Type: TypeError Exception Value:

password_reseteset() got an unexpected keyword argument 'post_change_redirect'

Exception Location: /home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/utils/decorators.py in _wrapped_view, line 99 Python Executable: /home/martin/Work/wisepress.com/virtualenv/bin/python Python Version: 2.7.8

Traceback: File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 112. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/martin/Work/wisepress.com/eshopwisepress/wp_auth/views.py" in passwd_reset 109. return password_reset(request, *args, **kwargs) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 99. response = view_func(request, *args, **kwargs) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/contrib/auth/views.py" in password_reset 142. post_reset_redirect = reverse('password_reset_done') File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse 536. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix 456. (lookup_view_s, args, kwargs, len(patterns), patterns))

Exception Type: NoReverseMatch at /accounts/password/reset/ Exception Value: Reverse for 'password_reset_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

在网址.py我有:

      url(r'^password/reset/done/$', 'django.contrib.auth.views.password_reset_done', name='passwd_reset_done'),
      url(r'^password/reset/confirm/(?P<uidb36>\w+)/(?P<token>[\d\w-]+)/$', 'django.contrib.auth.views.password_reset_confirm_uidb36', name='passwd_reset_confirm'),
      url(r'^password/reset/completed/$', 'django.contrib.auth.views.password_reset_complete', name='passwd_reset_complete'),
      url(r'^password/reset/$', passwd_reset, {'template_name':'emailing/registration-activation/password_reset_email.html'}, name='password_reset'),

在视图.py我有:

^{pr2}$

在django1.5中它工作得很好,但是在较新的版本中会出现错误。 你知道怎么修理吗?? 谢谢

编辑: 我换了房间网址.py重置密码的一些URL。现在有了:

    url(r'^password/reset/done/$', 'django.contrib.auth.views.password_reset_done', name='password_reset_done'),
    url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', name='password_reset_confirm'),
    url(r'^password/reset/completed/$', 'django.contrib.auth.views.password_reset_complete', name='password_reset_complete'),
    url(r'^password/reset/$', passwd_reset, {'template_name':'emailing/registration-activation/password_reset_email.html'}, name='password_reset'),

现在我有个错误:

Template error: In template /home/martin/Work/wisepress.com/eshopwisepress/templates/emailing/registration-activation/password_reset_email.html, error at line 44

> Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': '', u'token': ''}' not found. 1 pattern(s) tried: ['accounts/password/reset/confirm/(?P\w+)/(?P[\d\w-]+)/$']

第44行现在:

<a href="{{ protocol }}://{{ site_name }} {% url 'django.contrib.auth.views.password_reset_confirm' uidb64=uid token=token %} " target="_blank" style="color: #68b58e; text-decoration: none; font-style: italic;">Reset password</a><br/><br/>

Traceback: File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 137. response = response.render() File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/response.py" in render 105. self.content = self.rendered_content File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/response.py" in rendered_content 82. content = template.render(context) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/base.py" in render 140. return self._render(context) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/base.py" in _render 134. return self.nodelist.render(context) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/base.py" in render 840. bit = self.render_node(node, context) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/debug.py" in render_node 78. return node.render(context) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render 447. six.reraise(*exc_info) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/template/defaulttags.py" in render 433. url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in reverse 536. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) File "/home/martin/Work/wisepress.com/virtualenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix 456. (lookup_view_s, args, kwargs, len(patterns), patterns))

Exception Type: NoReverseMatch at /accounts/password/reset/ Exception Value: Reverse for 'django.contrib.auth.views.password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': '', u'token': ''}' not found. 1 pattern(s) tried: ['accounts/password/reset/confirm/(?P\w+)/(?P[\d\w-]+)/$']


Tags: djangoinpycomhomevirtualenvlibpackages