Django Model 5.探索objects背后的秘密,制作自己的筛查器all

文章目录探秘制作测试探秘之前我们经常用object来进行表之间的查询Student.objects.all()默认全部返回,如果想根据条件筛选返回,比如逻辑删除isdelete字段,可以自己来写这个objects及all方法点击objects,能看到是来自父类管理器Managerclass Manager(BaseManager.from_queryset(QuerySet)):p...
摘要由CSDN通过智能技术生成

文章目录

探秘

之前我们经常用object来进行表之间的查询
Student.objects.all()
默认全部返回,如果想根据条件筛选返回,比如逻辑删除isdelete字段,可以自己来写这个objects及all方法

点击objects,能看到是来自父类管理器Manager

class Manager(BaseManager.from_queryset(QuerySet)):
pass

其中all方法,实际上相当于get_queryset方法

def all(self):
    return self.get_queryset()

制作

我们现在自己来写,在model里新建类,参数是管理器
除了写all方法,我们还可以写get_queryset方法,本质是一样的
这里用一个筛选已删除,一个筛选未删除
使用的时候让objects赋值即可

from django.db.models import Manager


class CustomManager(Manager):
    # self表示当前对象
    def all(self): 
        return Manager.all(self).filter(isdelete=True)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值