新增自定義 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 類才能保持網站的外觀。