这个模型来自哪里。模型来自Django吗?

时间:2019-09-17 02:51:49

标签: python django

在创建Django项目时,我想创建模型以供以后存储在数据库中。但是在视频中,人们键入:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=20)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User)

好的,我知道我们正在继承模型类,因此我们可以使用其属性(例如CharField,TextField),但是为什么我们在继承时编写models.Model。我们不能只写模型吗?为什么他要导入类方法->模型?我在OOPS中缺少什么吗?

2 个答案:

答案 0 :(得分:0)

请检查Django's GitHub repository

我们可以看到models是一个包,而Model是一个用其base.py模块编写的类,因此我们可以做models.base.Model,但可以在以下版本中使用它__init__.py模块,因此我们可以将其用作models.Model

答案 1 :(得分:0)

Python中的所有对象都是对象,

from django.db.models import Model

class Post(Model):
    ...

与此相同:

from django.db import models

class Post(models.Model):
    ...

关于您的问题,Can't we just write models?不,因为模型是一个包含很多类的包,而Model是其中的一个。因此,您必须使用models.Model来获取class Post的类以进行继承。就像我在上面说的那样,如果只想像Model之类的东西,就必须导入要使用的正确的类。

希望有帮助!