v1.9到v1.10之后的NoReverseMatch升级

时间:2016-08-05 15:50:46

标签: 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的任何事情(我改变了尝试解决这个问题我已经恢复了)。任何帮助都感激不尽。

1 个答案:

答案 0 :(得分:3)

来自Django 1.10 release notes

  

删除了使用虚线Python路径反向()网址的功能。

url模板标记使用reverse()。因此不再有效

{% url 'django.contrib.auth.views.login' %}

您必须使用路线名称。

有关详细信息,请参阅Django 1.8 release notes