【问题标题】:NoReverseMatch on django generated viewsdjango 生成视图上的 NoReverseMatch
【发布时间】:2015-10-26 12:12:34
【问题描述】:

我正在尝试为 Django 中的所有身份验证过程创建视图,但视图中的反向 url 标记存在问题。

我有: urls.py

url('^v1/back/', include('django.contrib.auth.urls'))

登录.html

{% extends "base.html" %}
{% load i18n %}

{% block content %}
<form method="post" action=".">
  {{ form.as_p }}

  <input type="submit" value="{% trans 'Log in' %}" />
  <input type="hidden" name="next" value="{{ next }}" />
</form>

<p>{% trans "Forgot password" %}? <a href="{% url 'django.contrib.auth.views.auth_password_reset' %}">{% trans "Reset it" %}</a>!</p>
<p>{% trans "Not member" %}? <a href="{% url 'django.contrib.auth.views.registration_register' %}">{% trans "Register" %}</a>!</p>
{% endblock %}

当我访问 localhost:8000/v1/back/login/ 时,我有:

NoReverseMatch 在 /v1/back/login/

使用 'django.contrib.auth.views.auth_password_reset' 反转 未找到参数“()”和关键字参数“{}”。 0 个图案 试过:[]

问题是,如您所见,我尝试放置完整路径,但它仍然不起作用。 当我尝试访问另一个视图(例如更改密码)时,它会将我重定向到:

http://192.168.56.103:8000/accounts/login/?next=/v1/back/password_change/

这显然不起作用,当我访问密码重置时:

{% extends "base.html" %}
{% load i18n %}

{% block content %}
<form method="post" action=".">
  {{ form.as_p }}

  <input type="submit" value="{% trans 'Submit' %}" />
</form>
{% endblock %}

它在我的 base.html 上具有 django 管理员的外观和感觉。

我猜这里有很多问题,我正在尝试一一解决,但我不知道我在url部分做错了什么。

不知道这是否相关,但我的应用程序的一部分由 Django Rest Framework 提供服务,我正在尝试实施 oAuth2。

【问题讨论】:

    标签: django


    【解决方案1】:

    我认为您应该从

    更改您的 url 模板标签
     {% url 'django.contrib.auth.views.auth_password_reset' %} 
    

    只是

    {% url 'password_reset' %}
    

    可以在https://docs.djangoproject.com/en/1.8/topics/auth/default/#all-authentication-views 的示例中看到。

    【讨论】:

      【解决方案2】:

      密码重置的正确名称只是password_reset,要反转它使用:

      {% url 'password_reset' %}
      

      要修复登录重定向,您必须在 settings.py 中调整 LOGIN_URL

      我建议您删除有关模板的部分并将其作为单独的问题发布。

      【讨论】:

        猜你喜欢
        • 2014-02-21
        • 2013-10-22
        • 2018-10-21
        • 2017-09-07
        • 1970-01-01
        • 2020-06-11
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多