如何自定义Django更改密码表单的外观

时间:2021-04-11 19:55:14

标签: django django-rest-framework django-views django-forms django-templates

如何自定义 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>

1 个答案:

答案 0 :(得分:0)

哎呀,我的错误是在 urls.py 中,它一定是这样的 StageQuery & { stage: 'slack' } 而不是 views.PasswordChangeView.as_view

应该是这样的

auth_views.PasswordChangeView.as_view
相关问题