Django4 中文入门教程 Django4.0 管理器-默认管理器

2024-02-25 开发教程 Django4 中文入门教程 匿名 2

Model._default_manager

若你使用自定义 ​Manager ​对象,注意 Django 遇到的第一个 ​Manager ​(按照你在模型中定义的顺序)会拥有一个独特的状态。Django 将类定义中的第一个 ​Manager ​视作 “默认” ​Manager​,Django 的几个组件(包括 ​dumpdata​)在用到该模型时会独立地调用该 ​Manager​。故此,选择默认管理器时要万分小心,避免遇到重写的 ​get_queryset()​ 无法获取期望的结果这种情况。

你可以通过 ​Meta.default_manager_name​ 指定一个自定义的默认管理器。

若你正在编写的代码必须处理未知模型,例如,在实现了通用视图的第三方应用中使用这个管理器(或 ​_base_manager​),而不是假定该模型有一个名为 ​objects ​的管理器。