我无法理解models.Model参数以及它在这里做了什么。我在工作中学习django,这是我的第一个软件项目。这是一篇:
class DocumentRequest(models.Model):
#contact info fields
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
在代码的第一部分中,我们使用了Charfield,IntegerField,DateTimeField等。如果我正确的话,它似乎是模型文件的Model类允许使用这些东西。我不明白你为什么要使用models.Model作为参数,为什么不直接导入" Model" class并使用这些调用(models.CharField等)?
由于
答案 0 :(得分:1)
这里有class inheritance
。
Model
模块中有一个django.db.models
类。您实际上可以检查源代码here, currently starting at line 371。正如您向下滚动时所看到的,有很多方法。方法是在类内部定义的函数。当你在另一个类声明期间subclass
时,它会继承父类中定义的那些方法(以及其他优点)。
您的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!