Django模型的继承
在Django中,你可以通过继承来创建一个新的模型,这个新模型将会继承基类的所有字段和方法。这样做可以减少重复代码,使你的模型更加清晰和高效。
以下是一个简单的例子,演示了如何使用模型继承:
from django.db import models
# 基础用户模型
class BaseUser(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
def __str__(self):
return self.name
# 管理员模型继承自BaseUser
class AdminUser(BaseUser):
role = models.CharField(max_length=100)
def __str__(self):
return f"{self.name} (Admin)"
# 普通用户模型继承自BaseUser
class User(BaseUser):
about = models.TextField()
def __str__(self):
return f"{self.name} (User)"
在这个例子中,BaseUser
是一个基础模型,包含了所有用户共有的字段。AdminUser
和 User
是继承自 BaseUser
的子模型,分别添加了不同的字段,AdminUser
有一个额外的 role
字段,User
有一个 about
文本字段。
使用这种方式,你可以很容易地扩展你的模型,而不需要在多个模型中重复相同的字段定义。
评论已关闭