表單繼承

我們可以用表單繼承的方法,減少代碼冗余。

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>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • HTML表單 在HTML中,表單是 ... 之間元素的集合,它們允許訪問者輸入文本、選擇選項、操作對象等等,然后將...
    蘭山小亭閱讀 3,443評論 2 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,842評論 2 17
  • 天干氣燥,霧霾頻發(fā),人體最“嬌嫩”的器官——肺,時時處于警戒狀態(tài),一不小心就受傷。這里有兩個動作,對保護肺臟很有好...
    李秦的個人生活閱讀 280評論 0 0