django orm 管理器 objects
给某张表的管理器重命名
class User(models.Model):
name = models.CharField(max_length=100)
people = models.Manager() 获取所有的queryset,用people替代objects
obj = model.User.people.all()
重写管理器,增加或覆盖某些功能
class MyManager(models.Manager):
def with_counts(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute("select name,count(1) from user group by name")
result_list = []
for row in cursor.fetchall():
p = self.model(name=row[0])
p.count = row[1]
result_list.append(p)
return result_list class User(models.Model):
name = models.CharField(max_length=100)
sex = models.CharField(max_length=100)
objects = MyManager() class Meta:
db_table = 'user' #查询
obj = models.User.objects.with_counts()
print obj[0].count #
重写manager.get_queryset()覆盖管理器自带的Queryset
get_queryset()会根据需要返回查询集
#增加一个只查询男性用户的管理器
class MaleUserManager(models.Model):
def get_queryset(self):
return super(MaleUserManager,self).get_queryset().filter(sex='male') class User(models.Model):
name = models.CharField(max_length=100)
sex = models.CharField(max_length=100)
objects = models.Manager()
male_objects = MaleUserManager() class Meta:
db_table = 'user' #查询
可以使用 User.objects.all(),User.male_objects.all()
django orm 管理器 objects的更多相关文章
- Django 利用管理器实现文章归档
Django管理器:class Manager 管理器是Django的模型进行数据库查询的接口,Django应用的每个模型都拥有至少一个管理器.默认情况下,Django为每个模型类添加一个名为obje ...
- Django Managers管理器
Managers class Manager 管理器是向Django模型提供数据库查询操作的接口.Django应用程序中每个模型至少有一个管理器. Manager names 默认情况下管理器的名字为 ...
- Django 上下文管理器的应用
使用场景:模板继承可以减少页面内容的重复定义,实现页面内容的重用.个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用.但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的 ...
- [django]上下文管理器
上下文管理器django提取context中的数据去供模板调用 需求: 所有的页面都需要一个特定的变量 本质: python函数 , 接收一个HttpRequest对象的参数 , 且返回的必须是一个字 ...
- Django 上下文管理器,为父模板添加动态数据
1.摘要:模板继承可以减少页面内容的重复定义,实现页面内容的重用. 但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的.我们可以通过自定义上下文处理器来解决 2.Django上下文处理器 ...
- Django 源码小剖: Django ORM 查询管理器
ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...
- Django ORM 查询管理器
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...
- django的模型类管理器-----------数据库操作的封装
模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除 ...
- Django ORM基础篇【转载】
ORM( Object relational mapping 对象关系映射)D:把面向对象中的类和数据库表一一对应起来,在django项目与数据库之间起着桥梁的 ...
随机推荐
- python3对比python2的更新点
python3对比python2的更新点: Python2官方基础模块:urllib2 第三方功能包:requests python3中urllib库和urilib2库合并成了urllib库. 其中u ...
- 配置xml报错:URI is not registered ( Setting | Project Settings | Schemas and DTDs )
报红提示:URI is not registered ( Setting | Project Settings | Schemas and DTDs ) 解决方法:打开Schemas and DTDs ...
- UI规范案例-宝龙广场
- WEB学习笔记4-前端代码基本命名规法和格式规范
1.HTML命名规范及格式规范 标签名和属性应该都小写,虽然HTML代码不区分大小写:属性值应该用双引号闭合. <IMG src=demo.jpg alt='test'/>(N) < ...
- 如何使用idea给系统平台添加子应用和应用的模块
1.添加模块smartcity-portal,由于模块是在smartcity-framework工程下的,所以按照图片所示添加 2.smartcity-portal模块添加完成后,由于portal-d ...
- 如何让浏览器直接输出HTML代码而不解析
方法一: 将HTML代码嵌入到<script type='text/html' style='display:block'></scipt>中 <script type= ...
- Unity数据类型转XML/Json-封装函数直接调用(Chinar)
Unity将数据直接转XML/Json文件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
- 51Nod - 1433 0和5 找规律
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数.使得这个数尽可能大,而且可以被90整除. 注意: 1.这个数没有前 ...
- UE4 材质编辑
1.颜色反转(纹理颜色白变黑,黑变白)
- gtest 参数化
前言: 在测试用例中,我们时常需要传给被测函数不同的值,gtest为我们提供了简便的方法,可以使我们能够灵活的进行参数化测试. 步骤: 1.创建一个类,继承testing::TestWithParam ...