首页 > 解决方案 > 我正在尝试使用 django 内置功能更改密码,但它不起作用

问题描述

问题

我正在尝试使用 Django 内置身份验证功能更改密码,但它不会更改密码,甚至不会重定向到下一页。我已经粘贴了我为此编写的所有代码,请任何人都可以检查它并告诉我我做错了什么。

表格.py

class MyPasswordChangeForm(PasswordChangeForm):
    old_password = forms.CharField(label=_("Old Password"),strip=False,widget=forms.PasswordInput(attrs={'autocomplete':'current-password', 'autofocus':True,'class':'form-control'}))
    new_password1 = forms.CharField(label=_("New Password"),strip=False,widget=forms.PasswordInput(attrs={'autocomplete':'new-password','class':'form-control'}),help_text=password_validation.password_validators_help_text_html())
    new_password2 = forms.CharField(label=_("Confirm New Password"),strip=False,widget=forms.PasswordInput(attrs={'autocomplete':'new-password','class':'form-control'}))

网址.py

 path('passwordchange/',auth_views.PasswordChangeView.as_view(template_name='main/passwordchange.html',form_class=MyPasswordChangeForm, success_url='/passwordchangedone/'),name='passwordchange'),

密码更改.html

{% extends 'main/base.html' %}
{% load static %}
{% block title %}Buy Now{% endblock title %}
{% block main-content %}
<div class="container my-5">
 <div class="row">
 <h3>Welcome {{request.user.username.title}}</h3>
  <div class="col-sm-2 border-end">
   <ul class="list-unstyled">
    <li class="d-grid"><a href="{% url 'main:profile' %}" class="btn btn-primary">Change Password</a></li>
   </ul>
  </div>
  <div class="col-sm-9 offset-sm-1">
    <h3>Change Password</h3>
    <hr>
   <form action="" method=" post" novalidate class="shadow-sm p-5">
       {% csrf_token %}
       <!-- {{form.as_p}} -->
       {% for fm in form %}
       <div class="form-group">
           {{fm.label_tag}}{{fm}}
           <small class="text-danger">{{fm.errors|striptags}}</small><br>
       </div>
       {% endfor %}
       <input type="submit" class="btn btn-primary mt-4" value="Save">
    
       {% if form.non_field_errors %}
        {% for error in form.non_field_errors %}
            <p class="alert alert-danger my-3">{{error}}</p>
        {% endfor %}
       {% endif %}
        </form>
  </div>
 </div>
</div>
{% endblock main-content %}

标签: pythondjangodjango-templates

解决方案


推荐阅读