Django自定义模型管理器

本文详细介绍了如何在Django中自定义模型管理器,包括使用步骤和示例代码。通过自定义管理器,可以实现ORM的扩展操作,如添加、查询数据,并展示了查询所有买家用户邮箱的方法。此外,还提及了缓存的概念,强调其在提高数据读取速度中的作用。

manager是django模型中的一个元类,定义了ORM常用的操作 如:

get all last first

双下划线语法 lt gt in startswith istartswith 

可以重写manager实现自定义的操作ORM的方法

 

使用步骤

1,导入manager类

from django.db.models import Manager

 2,重写manager

实现自己的操作方法

增加数据

查询数据

查询所有买家用户的邮箱

class MyUser(Manager):

    def addUser(self,email,password):

          flag = LoginUser.objects.filter(email=email,password=password)

           if not flag:

              user = LoginUser.objects.create(email=email,password=password)

               return user

           else:

                return flag

      def getUser(self):

          email = LoginUser.objects.filter(user_type=1).values('email')

          return eamil

 3,将重写的类,赋值给objects

class LoginUser(models.Model):

   objects = MyUser()

 4,使用

在local中输入命令 python manage.py shell进入环境

增加数据

>>>from Seller.models import *

>>>user = LoginUser.objects.getUser('student@126.com','teacher')

>>>user

 5,查询某个用户买到的所有商品的名字

def getGoods(self,user_id):

   from Buyer.models import PayOrder,OrderInfo

    goods_name = PayOrder_name_list = [] 

    for one in payorder:

        order_info = one.orderinfo_set.all() 

         for goods in order.goods:

            goods_name = goods.goods

             print(goods_name)

              goods_name_list.append(goods_name.goods_name)

      return goods_name_list

              

缓存

缓存是快速读取数据介质 通常是内存

判断数据是否在内存中

数据在内存中(缓存)直接从缓存中获取数据

从数据库查询数据

将数据添加到缓存中

给用户返回数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值