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