我們可以用表單繼承的方法忙干,減少代碼冗余。
class TestForm(forms.Form):
name = forms.CharField(max_length=6)
age = forms.IntegerField()
# 繼承了 TestForm
class TestForm2(TestForm):
sex = forms.CharField(required=False)
現(xiàn)在 TestForm2 擁有繼承的來的 name夺衍、age 字段,和自身的 sex 字段喜命。我們在 shell 里看看:
f = TestForm2()
print(f.as_ul())
>>> <li><label for="id_name">Name:</label> <input id="id_name" maxlength="6" name="name" type="text" required /></li>
<li><label for="id_age">Age:</label> <input id="id_age" name="age" type="number"required /></li>
<li><label for="id_sex">Sex:</label> <input id="id_sex" name="sex" type="text" /></li>
在子類中沟沙,可以通過設(shè)置值為 None 來刪除從父類中繼承的字段。例如:
class TestForm(forms.Form):
name = forms.CharField(max_length=6)
age = forms.IntegerField()
# 繼承了 TestForm
class TestForm2(TestForm):
age = None
sex = forms.CharField(required=False)
我們在 shell 里看看:
f = TestForm2()
print(f.as_ul())
>>> <li><label for="id_name">Name:</label> <input id="id_name" maxlength="6" name="name" type="text" required /></li>
<li><label for="id_sex">Sex:</label> <input id="id_sex" name="sex" type="text" /></li>