python - 从 v1.9 升级到 v1.10 后的 NoReverseMatch

标签 python django

我刚刚升级到 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/

相关文章:

python - 如何将单词和标点符号之间包含空格的字符串分成句子?

python numpy array/dict 多重继承

django - 为 Django 模型字段分配友好名称

django - 仅针对行为对 Django 模型进行子类化

Django 多对一/一对多关系

python - django-reversion 的修改日期

python - 查找threading.Lock的futex id

python - 使用 Python GUI (PySide) 元素的 OOP 技术

python - 循环模板的键值 - Django查询

Django 通过电子邮件发送错误