1、原生
使用模型管理器
定义模型对象表级
的行为,通过在模型类的内部创建内置方法
定义记录级
的行为。
通过在模型类的内部创建变量
来声明模型的数据
(数据表的字段)。
2、扩展
1)使用代理模型
扩展模型对象表级
的行为。
例如,假设你想为 Person 模型添加一个方法。你可以这么做:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
class MyPerson(Person):
class Meta:
proxy = True
def do_something(self):
# ...
pass
2)使用关联关系
扩展模型对象的数据。
如果希望增加与原模型相关的数据可以使用使用一个 OneToOneField
到一个包含字段的模型,这种一对一的模型通常被称为 profile 模型
from django.contrib.auth.models import User
class Employee(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
department = models.CharField(max_length=100)
相关文档
https://docs.djangoproject.com/zh-hans/3.2/topics/db/models/#proxy-models