- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用内置的 Django 密码重置。翻看Django docs ,据我所知,它基本上只涉及向 urls.py
urls.py
:
urlpatterns = [
url(r'^login/$', views.login_view, name='login'),
url(r'^password_reset/$', auth_views.password_reset, {'post_reset_redirect' : '/accounts/password_reset_done/'}, name='password_reset'),
url(r'^password_reset_done/$', auth_views.password_reset_done, name='password_reset_done'),
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, {'post_reset_redirect' : '/accounts/password_done/'}, name='password_reset_confirm'),
url(r'^password_done/$', auth_views.password_reset_complete, name='password_done'),
url(r'^auth/$', views.login_auth, name='login_auth'),
url(r'^register/$', views.register_user, name='register'),
url(r'^logout/$', views.logout_user, name='logout'),
]
login.html
:
{% extends "base.html" %}
{% block content %}
<title>{% block title %} | Login{% endblock %}</title>
<form action="/accounts/auth/" method="POST">
<h2>Login</h2>
{% if error_message %}<div class="formfielderrors">* {{ error_message }}</div>{% endif %}
{% csrf_token %}
<label for="username">Username: </label>
<br>
<input type="text" name="username" value="" id="username">
<br><br>
<label for="password">Password: </label>
<br>
<input type="password" name="password" value="" id="password">
<br><br>
<a href="/accounts/password_reset/">Forgot Password?</a>
<br><br>
<input type="submit" value="Login" class="greenButton">
</form>
{% endblock content %}
我相当确定我已经正确添加了这些 URL,并且 r'^password_reset/$'
页面正确加载,但是在输入我的电子邮件并单击“重置我的密码”之后,我收到以下错误:
NoReverseMatch at /accounts/password_reset/
我什至不确定这个错误是什么意思,所以我很难调试。通过查看文档,这似乎不是很难实现的功能,但我似乎无法让它工作。我在这里做错了什么?
完整错误:
response = self.process_exception_by_middleware(e, request)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/contrib/auth/views.py", line 49, in inner
return func(*args, **kwargs)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/utils/decorators.py", line 149, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/contrib/auth/views.py", line 205, in password_reset
form.save(**opts)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 259, in save
html_email_template_name=html_email_template_name)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 208, in send_mail
body = loader.render_to_string(email_template_name, context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/loader.py", line 97, in render_to_string
return template.render(context, request)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/backends/django.py", line 95, in render
return self.template.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 206, in render
return self._render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 197, in _render
return self.nodelist.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 988, in render
bit = node.render_annotated(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
return self.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/defaulttags.py", line 41, in render
output = self.nodelist.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 988, in render
bit = node.render_annotated(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
return self.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/loader_tags.py", line 60, in render
result = self.nodelist.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 988, in render
bit = node.render_annotated(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/base.py", line 955, in render_annotated
return self.render(context)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/defaulttags.py", line 513, in render
six.reraise(*exc_info)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/template/defaulttags.py", line 499, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 600, in reverse
return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "/Users/tomeldridge/Desktop/Misc/Hobbies/Programming/Projects/Pygamers/venv/lib/python2.7/site-packages/django/core/urlresolvers.py", line 508, in _reverse_with_prefix
(lookup_view_s, args, kwargs, len(patterns), patterns))
NoReverseMatch: Reverse for 'password_reset_confirm' with arguments '()' and keyword arguments '{u'uidb64': 'MQ', u'token': u'49h-b07b0dfeb4aa82d09149'}' not found. 0 pattern(s) tried: []
[17/Feb/2016 01:47:33] "POST /accounts/password_reset/ HTTP/1.1" 500 173812
最佳答案
问题来自您对帐户 url 使用 namespace 和 View 中使用的 Django 内置模板。在模板 registration/password_reset_email.html
中,您将看到:
{% url 'password_reset_confirm' uidb64=uid token=token %}
但是,您的应用中不存在 url 名称 password_reset_confirm
,因为您使用了命名空间“accounts”- url 变成了 accounts:password_reset_confirm
。
您可以考虑创建一个单独的文件来存储不使用“accounts”命名空间的 url。例如
# urls_django_auth.py
url_patterns = [
url(r'^password_reset/$', auth_views.password_reset, ...),
url(r'^password_reset_done/$', auth_views.password_reset_done, ...),
... other django auth views ...
]
# urls.py
url_patterns = [
....
url(r'^accounts/', include('accounts.urls', namespace='accounts')),
url(r'^accounts/', include('accounts.urls_django_auth')),
]
或者您可以使用正确的 URL 模式创建您自己的 password_reset_email.html
版本,并将其传递给您的 View
url(r'^password_reset/$', auth_views.password_reset, {
'post_reset_redirect' : '/accounts/password_reset_done/',
'email_template_name': '/your/own/password_reset_email.html'
}, name='password_reset')
关于python - Django - NoReverseMatch 位于/accounts/password_reset/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35445845/
我正在尝试添加我单独制作的用户应用程序,然后尝试将其添加到我的博客中。但问题是每次我尝试添加这个东西都会搞砸,就像我现在遇到的这个错误一样。 raise NoReverseMatch(msg) dja
我有以下设置: /landing_pages views.py urls.py 在urls.py中,当我尝试访问/competition时,我有以下内容: from django.conf.u
我在浏览器中遇到此异常,我已经看到多达 20 篇与此错误相关的帖子,但我找不到任何解决方案。我是 Django 的新手,请帮助我,在此先感谢。 我的项目名/urls.py urlpatterns =
我有这个问题,被困了几个小时。 NoReverseMatch位于/ 找不到参数“('',)”的“hotovo”。尝试了1个模式:['hotovo/(?P [^/] +)$']。 网址: urlpatt
所以我做了很多博客教程中的一个,现在我正在开发自己的应用程序。我遇到了这个错误: Reverse for '' with arguments '()' and keyword arguments '{
使用 Django 1.10.4。我有一个模型 Stream,我为其创建了 CreateView。当通过管理面板创建对象时,一切正常,但是当我使用 CreateView 表单时,创建了一个对象(在管理
为什么我会得到 Reverse for 'explorer_js' not found. 'explorer_js' is not a valid view function or pattern n
我正在构建一个函数,以在用户单击链接时增加模型,但即使我传递了所有参数,我仍然无法解决此问题。 Reverse for 'karma' with keyword arguments '{'token'
我正在尝试向 View 发送 AJAX 发布请求,但由于某种原因我收到了 Http500 错误。 这是 AJAX 函数: function update_coins() { $.ajax({
我不明白这是怎么回事?我试图制作一个项目的详细信息页面,例如 http://tutorial.djangogirls.org/en/extend_your_application/index.html
我正在 django 1.6(和 python 2.7)中制作一个简单的登录应用程序,但我在开始时遇到错误,无法继续。 这是网站的 url.py from django.conf.urls impor
调试了一段时间后,我发现了错误是什么,但我不知道如何修复它。 我有一个名为“ver_caja”的 urlConf ' 谁接收一个 caja 对象的 id 作为参数,然后调用泛型 object_deta
刚开始使用 Django,但遇到了一些困难——我决定尝试编写一个简单的博客引擎,同时引用 django-basic-apps 库。 在 blog/urls.py 中,我有这个条目按日期映射到实际的帖子
我正在开发一个简单的应用程序,宠物用户可以在其中创建关于他们宠物的板并在板上显示图片。 我正在尝试创建一个功能,用户可以点击他们的图板,将他们重定向到他们的图板,该图板将显示他们所有的宠物图片。 当我
我在 View 中有两种方法 create 和 update ,其中 update 接受一个参数,而 create 不接受任何参数。我决定将它们变成只有一个函数 update_create 因为它们没
我遇到了这个错误,但似乎无法弄清楚。我直接从以前的 Django 项目复制它,因此造成了部分困惑。 TemplateSyntaxError at Caught NoReverseMatch while
我在让 password_Reset_confirm 位工作时遇到问题。 网址: (r'^password_reset/$', 'django.contrib.auth.views.password_
目前 Django URL 标记出现 NoReverseMatch 错误。一直在关注 Django 权威指南、Django 文档,并在此处和互联网上进行搜索 网址: url(r'^test/', Se
我又花了一个晚上在这上面...有人可以帮忙吗? 我正在尝试在 http://lightbird.net/dbe/todo_list.html 复制 kickstart 示例这似乎是为早期版本的 Dja
我在尝试使用 url 标记链接到 View 时遇到了这个错误。错误发生在这一行: {% for algorithim in algorithims %} 在模板中。 不太确定我哪里出错了。我想我已经附
我是一名优秀的程序员,十分优秀!