【问题标题】:Django adding placeholder text for PasswordChangeView?Django为PasswordChangeView添加占位符文本?
【发布时间】:2020-04-09 13:27:16
【问题描述】:

用户可以在我的更改密码页面上更改他们的密码:

<form class="password-change-form" method="POST">
    {% csrf_token %}
    <div>
        {{ form }}
    </div>
    <input class="submit-button" type="submit" value="Change password">
</form>

我的 urls.py:

   path(
        'accounts/password_change/',
        auth_views.PasswordChangeView.as_view(template_name='account/password_change_form.html'),
        name='password_change'
    ),

问题

PasswordChangeView 默认uses PasswordChangeForm

我想在此表单中添加占位符文本,即旧密码占位符文本:“输入您的旧密码”。

我怎样才能最好地做到这一点?

【问题讨论】:

    标签: python django python-3.x django-forms django-views


    【解决方案1】:

    您将参数中的任何类属性覆盖为as_view()。因此,与您指定template_name='account/password_change.html' 的方式相同,您可以添加form_class=MyPasswordChangeForm

    只需将PasswordChangeForm 与您的MyPasswordChangeForm 子类化,然后进行您需要的任何更改。

    PasswordChangeView的类属性为:template_nameform_classtitlesuccess_url+FormViewPasswordContextMixin的类属性。

    【讨论】:

    • 谢谢你说得通。在 MyPasswordChangeForm 中,我将如何添加占位符文本?目前我正在尝试: class MyPasswordChangePasswordForm(PasswordChangeForm): password = forms.CharField(widget=PasswordInput(attrs={'placeholder':'Password'})) 但无济于事
    • PasswordChangeForm的字段为old_passwordnew_password1new_password2
    • 哎呀,我的错,我之前尝试过,但有一个错字!谢谢!
    猜你喜欢
    • 2017-10-23
    • 2019-04-14
    • 1970-01-01
    • 2014-11-24
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2014-01-08
    相关资源
    最近更新 更多