如何在Django中创建抽象模型类
Django是一个高水平的Python Web框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了网络开发的许多麻烦,因此你可以专注于编写你的应用程序,而不需要重新发明车轮。它是免费和开源的。
什么是模型继承
Django中的模型继承与python中普通类的继承工作方式几乎相同。在这篇文章中,我们将围绕如何在Django模型中创建抽象的基类。
抽象的基类:-
当你想把一些共同的信息放到其他一些模型中时,抽象基类很有用。你编写你的基类并在元类中放入抽象 = True。假设你有两个模型学生和教师。
models.py
from django.db import models
class Student(models.Model): # STUDENT
name = models.CharField(max_length=100)
rollno = models.IntergerField()
class Teacher(models.Model): # TEACHER
name = models.CharField(max_length=100)
ID = models.IntergerField()
那么你有没有注意到,有一个字段的名称在两个模型上是共同的。
因此,我们没有在两个模型中添加共同的字段,而是创建了另一个模型,并将这些共同的字段放在该模型中。
models.py
from django.db import models
class common(models.Model): # COMM0N
name = models.CharField(max_length=100)
class Meta:
abstract = True
因此,在这里我创建了一个通用模型,并将通用字段放在该模型中。
在Meta类中放入abstract = True。设置abstract True后,现在它变成了一个抽象类,而不是一个模型,所以现在你不能生成一个数据库表。
class Student(common): # STUDENT
rollno = models.IntegerField()
class Teacher(common): # TEACHER
ID = models.IntegerField()
Ubuntu
python3 manage.py makemigrations
python3 manage.py migrate
现在你可以在学生和教师中继承共同的名字字段了。就像普通的Python继承一样。
输出 :