1、原生

    使用模型管理器定义模型对象表级的行为,通过在模型类的内部创建内置方法定义记录级的行为。

    通过在模型类的内部创建变量来声明模型的数据(数据表的字段)。

    2、扩展

    1)使用代理模型扩展模型对象表级的行为。

    例如,假设你想为 Person 模型添加一个方法。你可以这么做:

    1. from django.db import models
    2. class Person(models.Model):
    3. first_name = models.CharField(max_length=30)
    4. last_name = models.CharField(max_length=30)
    5. class MyPerson(Person):
    6. class Meta:
    7. proxy = True
    8. def do_something(self):
    9. # ...
    10. pass

    2)使用关联关系扩展模型对象的数据。

    如果希望增加与原模型相关的数据可以使用使用一个 OneToOneField到一个包含字段的模型,这种一对一的模型通常被称为 profile 模型

    1. from django.contrib.auth.models import User
    2. class Employee(models.Model):
    3. user = models.OneToOneField(User, on_delete=models.CASCADE)
    4. department = models.CharField(max_length=100)

    相关文档
    https://docs.djangoproject.com/zh-hans/3.2/topics/db/models/#proxy-models