在創建模型的情況下,例如 class Student(models.Model)
name=models.charfield(),roll=models.integerfield()
同樣,在創建表單的情況下, class newform(forms.Form) name=forms.charfield(),roll=forms.integerfield()
同樣,在創建序列化程式的情況下,類 serial(serializers.Serializer) name=serializers.charfield(),roll=serializers.integerfield()
我知道在每個類中,都會繼承一個基類,但我很困惑,如果在每個場景中在一個類中創建不同類的不同物件,那么繼承 models.model、forms.Form、serializers.Serializer 是什么意思?這些繼承的類呢?
uj5u.com熱心網友回復:
Django 使用繼承和物件組合,它們是 OOP 的可重用技術。
讓我們以您的第一堂課為例(為簡單起見,我只保留了一個欄位):
Student(models.Model):
name = models.CharField(max_length=100)
繼承:
第一行通過從您獲取方法Student(model.Model):的類繼承來進行繼承,例如,等現在您的類可以重用這些方法。Modelsave()delete()clean_fieldsStudent
作品
第二行name = models.CharField(max_length=100)通過創建物件即name類來進行物件組合,CharField使用該物件可以獲得諸如check等get_internal_type方法
所有這些內置類(Model等CharField)都在檔案中定義,models.py因此當您從檔案models.Model中獲取Model類models.py并從同一檔案中models.CharField為您提供類時。CharField
uj5u.com熱心網友回復:
通過從其他類繼承,您可以訪問它們的方法;
Class A(object):
def _print(self):
print('Class A')
Class B(A):
def other_print(self):
print('Class B')
if __name__ == "__main__":
a, b = A(), B()
a._print()
b._print()
b.other_print()
從模型、表單等繼承時...您從已經集成在框架中的物件繼承,因此具有與框架一起使用的特定方法。例如模型將被注冊到資料庫中,表單“知道”如何正確呈現,等等......
當您從這些類繼承時,您已經擁有一個包含所有這些方法的預構建物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/412671.html
標籤:
