添加自定义 CSS 类

内置表单很棒但有时需要自定义它们,添加新字段或只是更改 CSS 属性。

此示例适用于多个用例,但此处介绍了 PasswordChangeForm 及其在 Bootstrap 网站中的使用。

解决方案是创建另一个表单,使用 PasswordChangeForm 更新 Widget

class PasswordChangeCustomForm(PasswordChangeForm):
    def __init__(self, user, *args, **kwargs):
        super(PasswordChangeCustomForm, self).__init__(user,*args, **kwargs)
        for field in self.fields:
            self.fields[field].widget.attrs['class'] = 'form-control'

如果你只是假装更改某些字段,则可以执行以下操作:

class PasswordChangeCustomForm(PasswordChangeForm):
    def __init__(self, user, *args, **kwargs):
        super(PasswordChangeCustomForm, self).__init__(user, *args, **kwargs)
        self.fields['old_password'].widget.attrs.update({'class': 'form-control'})
        self.fields['new_password1'].widget.attrs.update({'class': 'form-control'})
        self.fields['new_password2'].widget.attrs.update({'class': 'form-control'})

注意:所有引导表单都需要 form-control 类才能保持网站的外观。