django的表单模型是一大亮点功能,有时多个表单存在相似的字段,我们可以进行继承复用,如果要在继承后修改某些属性,可以利用Python的super函数重载表单的初始化函数。
from django import forms
class PasswordForm(forms.Form):
password = forms.CharField(max_length=20, min_length=8, widget=forms.PasswordInput())
password.widget.attrs.update({'class': 'long-input'})
class PasswordHashForm(PasswordForm):
hashkey = forms.CharField(widget=forms.HiddenInput, required=True)
def __init__(self, *args, **kwargs):
super(PasswordHashForm, self).__init__(*args, **kwargs)
self.fields['password'].widget.attrs.update({'class': 'middle-input'})