1. 程式人生 > >django繼承form表單後重置屬性的方法

django繼承form表單後重置屬性的方法

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'})