如何自定义 Django 更改密码表单的外观,我试过了,但什么也没发生,我不知道为什么,有什么想法吗?
forms.py :
from django.contrib.auth.forms import PasswordChangeForm
class MyPasswordChangeForm(PasswordChangeForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields["old_password"].widget = forms.PasswordInput(attrs={"class": "form-control"})
self.fields["new_password1"].widget = forms.PasswordInput(attrs={"class": "form-control"})
self.fields["new_password2"].widget = forms.PasswordInput(attrs={"class": "form-control"})
urls.py:
# Change Password
path(
'change-password/',
auth_views.PasswordChangeView.as_view(
template_name='user/commons/change-password.html',
success_url = '/'
),
name='change_password'
),
views.py :
from django.contrib.auth.views import PasswordChangeView
from blog_app.forms import MyPasswordChangeForm
class PasswordChangeView(PasswordChangeView):
form_class = MyPasswordChangeForm
template_name = "user/commons/change-password.html"
change_password.html:
<div class="form-group">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<a href="{% url 'home' %}">Back</a>
<button type="submit">Submit</button>
</form>
</div>
答案 0 :(得分:0)
哎呀,我的错误是在 urls.py 中,它一定是这样的 StageQuery & { stage: 'slack' }
而不是 views.PasswordChangeView.as_view
应该是这样的
auth_views.PasswordChangeView.as_view