0x00 – 模型属性之管理器
模型当中最重要的属性是 Manager。
它是 Django 模型和数据库查询操作之间的接口,并且它被用作从数据库当中 获取实例,如果没有指定自定义的 Manager 默认名称是 objects。
Manager 只能通过模型类来访问,不能通过模型实例来访问。
Manager 是一种接口,它赋予了 Django 模型操作数据库的能力。Django 应用中每个模型拥有至少一个 Manager。
Manager 类的文档介绍位于 执行查询;本页着重介绍自定义 Manager 行为的模型选项。
也就是说,manager类的具体使用就是执行查询了,因为自定义manager行为可能后期有需求,所以先贴上链接
0x01 – 管理器名称
默认情况下,Django 为每个模型类添加了一个名为 objects 的 Manager。不过,若你想将 objects 用作字段名,或想使用 objects 以外的 Manager 名字,就要在模型基类中重命名。要为指定类重命名 Manager,在该模型中定义一个类型为 models.Manager 的属性。例如:
from django.db import models
class Person(models.Model):
#...
people = models.Manager()
使用这个实例模型时, Person.objects 会产生一个 AttributeError 异常,而 Person.people.all() 会返回包含所有 Person 对象的列表.
0x02 – 自定义管理器
2021年9月22日