我刚刚升级到 django v1.10,我正在运行测试以检查一切是否正常,但我得到了 Reverse for 'django.contrib.auth.views.login' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
在我的登录页面上。
我正在使用 django-registration 并使用 <a href="/accounts/login/">Login</a>
调用以获取登录页面.
然后我收到针对此 html 的错误消息,它是 <form method="post" action="{% url 'django.contrib.auth.views.login' %}">
这是抛出错误。
<div class="container">
<div class="row text-center">
<div class="col-sm-12">
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">{% csrf_token %}
<span style="color:green">{{msg}}</span><br>
<table align="center">{{ form }}</table>
<button type="submit" class="btn btn-primary btn-sm">Login</button>
</form>
<a href="/password/recover" class="btn btn-primary btn-sm">Forgotten Password</a>
</div>
</div>
</div>
我没有更改 urls.py,它看起来包括:
url(r'^accounts/', include('registration.backends.hmac.urls')),
从 1.9 到 1.10,我没有做任何更改(而我为修复此问题所做的更改已还原)。非常感谢收到任何帮助。
最佳答案
来自 Django 1.10 release notes :
The ability to reverse() URLs using a dotted Python path is removed.
url
模板标签使用了reverse()
。因此这不再有效:
{% url 'django.contrib.auth.views.login' %}
您必须使用路由名称。
参见 Django 1.8 release notes了解详情。
关于python - 从 v1.9 升级到 v1.10 后的 NoReverseMatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793258/