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
缓存
缓存是快速读取数据介质 通常是内存
判断数据是否在内存中
是
数据在内存中(缓存)直接从缓存中获取数据
否
从数据库查询数据
将数据添加到缓存中
给用户返回数据
本文详细介绍了如何在Django中自定义模型管理器,包括使用步骤和示例代码。通过自定义管理器,可以实现ORM的扩展操作,如添加、查询数据,并展示了查询所有买家用户邮箱的方法。此外,还提及了缓存的概念,强调其在提高数据读取速度中的作用。
390

被折叠的 条评论
为什么被折叠?



