【问题标题】:Reverse for 'password_change' with no arguments not found. 1 pattern(s) tried: ['r^password_change/$']未找到任何参数的“password_change”反向。尝试了 1 种模式:['r^password_change/$']
【发布时间】:2018-08-03 02:43:01
【问题描述】:

我在我的应用程序中添加了 django.contrib.auth 身份验证视图。现在我无法访问这些视图。我收到了上面标题中提到的错误。我是否必须删除命名空间或将命名空间更改为其他名称?

urls.py:

    from django.contrib.auth import views as auth_views
from django.conf.urls import url,include
from . import views

app_name = 'set_goals'

urlpatterns = [
    url(r'^$',views.index,name='index'),
    url(r'^(?P<pk>[0-9]+)/about/$',views.about,name='about'),
    url(r'^(?P<pk>[0-9]+)/download/$', views.download, name='download'),
    url(r'^login_user/$', views.login_user, name='login_user'),
    url(r'^logout_user/$', views.logout_user, name='logout_user'),
    url(r'^register/$', views.register, name='register'),
    url('r^password_change/$',auth_views.password_change,{'post_change_redirect':'set_goals:password_change_done'},name='password_change')

,
url('r^password_change/done/$',auth_views.password_change_done,name='password_change_done'),
]

base.html:

 {% if user.is_authenticated %}
        <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:about' user.id %}">All Goals</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:password_change' %}">Change Password</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:logout_user' %}">Logout ({{user.username}})</a>
        </li>
        {% else %}
        <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:index' %}">About</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:login_user' %}">Login</a>
        </li>
                      <li class="nav-item">
          <a class="nav-link" href="{% url 'set_goals:register' %}">SignUp</a>
        </li>
        {% endif %}

这里有什么错误?这里要做的改变是什么?请帮忙。提前致谢!

错误堆栈跟踪:

    NoReverseMatch at /
Reverse for 'password_change' with no arguments not found. 1 pattern(s) tried: ['r^password_change/$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 2.0.7
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'password_change' with no arguments not found. 1 pattern(s) tried: ['r^password_change/$']
Exception Location: C:\Users\Akhil\PycharmProjects\GoalsProject\goals_env\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 636
Python Executable:  C:\Users\Akhil\PycharmProjects\GoalsProject\goals_env\Scripts\python.exe
Python Version: 3.6.5
Python Path:    
['C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\GoalsProject',
 'C:\\Users\\Akhil\\AppData\\Local\\Programs\\Python\\Python36',
 'F:\\models',
 'F:\\models\\research',
 'F:\\models\\research\\slim',
 'F:\\models\\research\\object_detection',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\GoalsProject',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env\\Scripts\\python36.zip',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env\\DLLs',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env\\lib',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env\\Scripts',
 'C:\\Users\\Akhil\\AppData\\Local\\Programs\\Python\\Python36\\Lib',
 'C:\\Users\\Akhil\\AppData\\Local\\Programs\\Python\\Python36\\DLLs',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env',
 'C:\\Users\\Akhil\\PycharmProjects\\GoalsProject\\goals_env\\lib\\site-packages']
Server time:    Fri, 3 Aug 2018 02:53:23 +0000

base.html 中带有 password_change 视图的行显示为错误。

【问题讨论】:

  • 可以加views.py吗?
  • 另外,也添加错误回溯
  • 在views.py中,没有password_change的代码。它是 django 提供的内置身份验证功能。 @JerinPeterGeorge

标签: python django django-forms django-templates django-views


【解决方案1】:

你有一个错字:

 url('r^password_change/$',

r 必须放在单引号之前:

 url(r'^password_change/$',

【讨论】:

    【解决方案2】:

    我认为您的 URL 模式是错误的, 试试这个

    urlpatterns = [
        # your other patterns
    
        url(r'^password_change/$', auth_views.password_change,
            {'post_change_redirect': 'set_goals:password_change_done'},
            name='password_change'),
        url(r'^password_change/done/$',
            auth_views.password_change_done,
            name='password_change_done'),
    ]
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2020-11-26
      • 2021-12-12
      • 2021-02-05
      • 2020-05-13
      • 2021-08-10
      • 1970-01-01
      • 2019-02-07
      • 2019-11-18
      相关资源
      最近更新 更多