codecamp

Django4.0 管理器-默认管理器

Model._default_manager

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

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

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


Django4.0 管理器-修改管理器的初始QuerySet
Django4.0 管理器-基础管理器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Django4.0 模型和数据库

Django4.0 处理HTTP请求

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }