在创建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中缺少什么吗?
答案 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之类的东西,就必须导入要使用的正确的类。
希望有帮助!