2014-03-28 52 views
1

我無法理解models.Model參數以及它在此處的作用。我在工作中學習django,這是我第一個軟件項目。這裏是一片:Django/Python:混淆class Classname(models.Model)參數

class DocumentRequest(models.Model): 
    #contact info fields 
    first_name = models.CharField(max_length=255) 
    last_name = models.CharField(max_length=255) 

整個代碼的第一部分,我們使用Charfield,IntegerField,DateTimeField字段等等。如果我是正確的,它似乎是模型文件的模型類,允許使用這些東西。我不明白爲什麼要使用models.Model作爲參數,爲什麼不只是導入「Model」類並使用這些調用(models.CharField等)?

感謝

回答

1

你這裏是什麼class inheritance

有一個Model類生活在django.db.models模塊。你實際上可以檢查源代碼here, currently starting at line 371。正如你在向下滾動時看到的那樣,有很多方法。方法是在類中定義的函數。當你在一個類聲明另一個類時,它會繼承父類中定義的那些方法(以及其他優點)。

您的DocumentRequest課程將包含所有在您的新課程中特定的課程Model中定義的所有內容。 class inheritance的概念爲我們節省了很多麻煩,對於理解面向對象編程來說絕對是核心。

你可以這樣做:

dr = DocumentRequest() 
dr.first_name = "Mark" 
dr.last_name = "Twain" 
dr.save() # save() method exists, we can use it right away!