Django笔记(模型类-管理器)

2023-05-16

模型类-管理器

作用: 用于与数据库交互

每个模型类默认有一个管理器,objects
objects是Django自动生成的管理器,可以实现对数据的查询,objects是models.Manger类的一个对象。

为满足特殊条件,可以自定义管理器

1、修改管理器的原始查询集(重写get_queryset()方法)
class BookInfoManager(models.Manager):
    def get_queryset(self):
        return super(BookInfoManager,self).get_queryset().filter(isDelete=False)

自定义管理器之后Django不再生成默认的objects管理器

2、模型类对象的创建方法

BookInfo模型类

from django.db import models


class BookInfo(models.Model):
    btitle=models.CharField(max_length=20)
    bpub_date=models.DateTimeField(db_column='pub_date')
    bread=models.IntegerField(default=0)
    bcomment=models.IntegerField(default=0)
    isDelete=models.BooleanField(default=False)

    class Meta:
        db_table='bookinfo'
    # 管理器的对象作为模型类的一个属性    
    books1=models.Manager()
    books2=BookInfoManager()

模型类中__init__方法不可用

解决方法:

①在模型类中定义一个类方法

@classmethod
def creat(cls,btitle,bpub_date):
  b=BookInfo()
  b.btitle=title
  b.bpub_date=pub_date
  b.bread=0
  b.bcomment=0
  b.isDelete=False
  return b

②在自定义的管理器中定义方法(推荐)

class BookInfoManager(models.Manager):
    def create(self,btitle,bpub_date):
        b=BookInfo()
        b.btitle=title
        b.bpub_date=pub_date
        b.bread=0
        b.bcomment=0
        b.isDelete=False
        return b

调用语法

book=BookInfo.books2.create("abc",date(1980,1,1))
查询

属性__比较符(谓词)=值
btitle__contains='八'

聚合
  • Max,Min,Avg
from django.db.modlels import Max
list = BookInfo.books1.aggregate(Max('bpub_date'))
  • count
count = list.count()
F对象

比较两个字段(普通查询为字段常量比较)

from django.db.modlels import Max,F
list = BookInfo.books1.filter(bread__gt=F('bcomment'))
Q对象

过滤器的参数为逻辑与(&)的关系

若需实现逻辑或|,使用Q对象

from django.db.models import Q
list = BookInfo.books1.filter(Q(pk__lt(4)|Q(btittle__contains='1'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django笔记(模型类-管理器) 的相关文章

  • .NET Core/.NET5/.NET6 开源项目汇总:(权限)管理系统

    前言 企业管理系统一般包含后台管理UI 组织机构管理 权限管理 日志 数据访问 表单 工作流等常用必备功能 下面收集的几款优秀开源的管理系统 xff0c 值得大家入门学习 如有新的优秀项目 xff0c 我会不断补充 开源项目是众多组织与个人
  • Nginx配置指令(一)

    1 daemon 语法 xff1a daemon on off 默认 xff1a on 如果使用daemon off xff0c nginx将会运行在前台 生产远景不建议如此使用 xff0c 虽然可以 2 env 语法 xff1a env
  • SQL将Json字符串转为表格

    支持复杂结构的使用 使用Parent ID来对应Object ID产生关系就好 实现对Json数据的从文字到表变量的转换 例 34 FieldName 34 34 DateKey 34 34 Title 34 34 汇总后日期 34 34
  • JavaScript实现动态添加的元素添加点击事件

    在页面开发过程中常常遇到需要动态添加元素 xff0c 然后给这一元素绑定相关事件的情况 xff0c 这种情况下一般需要给元素加上相关属性 xff0c 然后写这些元素的事件函数即可 动态添加的元素怎么绑定事件呢 xff1f 原生JavaScr
  • javascript解决小数的加减乘除精度丢失的方案

    原因 js按照2进制来处理小数的加减乘除 在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配 所以会出现如下情况 javascript js 的小数点加减乘除问题 xff0c 是一个js的bug如0 3 1 61 0 29999999
  • SqlServer 获取字符串中数字,中文及字符部分数据

    获取英文字符数据 Create function dbo Fun GetChar 64 No varchar 100 RETURNS varchar 100 AS BEGIN WHILE PATINDEX 39 A Za z 39 64 N
  • Asp.net 如何跳过基于表单的身份验证(authentication)

    淘到的Form验证过程 xff1a xff08 如果所有页面继承了同一个判断是否登录的类 xff0c 路径的判断是个问题 xff0c 文件所处的位置可能不同 xff0c 有的是二级菜单 xff0c 有的三级 还有的是通过Request Ur
  • ASP.NET Core读取Request.Body的正确方法

    参考文章 xff1a 深入探究ASP NET Core读取Request Body的正确方式 https www cnblogs com wucy archive 2021 05 06 14699717 html 当然我们也可以自己实现一套
  • 【Python+OpenCV入门学习】五、绘制几何图形

    本篇文章 xff0c 将学习如何 绘制几何图形 xff0c 如画线 圆 矩形 椭圆等 xff0c 另外还学习在图像中增加文本信息 主要学习 函数 line circle rectangle ellipse putText 等 的使用 环境
  • 交换机性能的常用指标及术语解释

    交换机性能的常用指标及术语解释 流量控制 背压技术Back pressure 基于IEEE802 3X标准 xff0c 当处理发现缓冲器将要填满时 xff0c 就 向源发站发出一个假冲突信号 xff0c 使之延迟一个随机时间 xff0c 然
  • Ubuntu22.04-添加中文输入法

    1 安装中文语言包 进入setting xff08 设置 xff09 gt 区域与语言 选项卡 进入 管理已安装的语言 第一进入将提示 语言支持没有完整安装 xff0c 点击安装即可 安装过程会将为进行补充安装的语言进行下载安装 设置中文
  • 修改apache设置,支持UTF8和GBK

    1 修改 etc httpd conf httpd conf 文件 xff0c 将其中AddDefaultCharset行注释掉 前面加 2 保存后重新启动apache usr sbin apachectl restart或者service
  • 数论——GCD

    ZOJ Problem Set 3846 题意 xff1a 给 N 个数 xff0c 任取两个数Ai Aj xff0c 求出这两数的GCD xff0c 然后用GCD替换这两个数的值 直至这n个数的值都相等为止 xff0c 此时输出求GCD的
  • 群晖DDNS和端口转发等相关讲解

    文章目录 废话篇前言本文知识概要域名和IP地址的了解域名解析内网IP和外网IPDDNS是什么 xff1f 群晖如何设置DDNS端口转发后言协助改进 废话篇 本篇文章为原创文章 xff0c 转载请注明出处 xff0c 感谢 本人也有个人博客
  • Python更新失败:SSL错误——Conda/Python

    Python更新失败 SSL错误 xff08 1 xff09 是正常Python环境下的错误 xff1a 例如 xff1a Could not fetch URL https pypi tuna tsinghua edu cn simple
  • c语言经典题目--字符串篇

    1 有效的字母异位词 给定两个字符串 s 和 t xff0c 编写一个函数来判断 t 是否是 s 的字母异位词 注意 xff1a 若 s 和 t 中每个字符出现的次数都相同 xff0c 则称 s 和 t 互为字母异位词 include lt
  • UITextField和UITextView被键盘遮住的处理办法

    void textFieldDidBeginEditing UITextField textField float offset 61 0 0f if self txtField 61 61 textField offset 61 180
  • CAShapeLayer动画(画圆效果)

    关于CAShapeLayer和DrawRect的比较 DrawRect xff1a DrawRect属于CoreGraphic框架 xff0c 占用CPU xff0c 消耗性能大 CAShapeLayer xff1a CAShapeLaye
  • iOS调用各大地图APP导航,进行路线规划

    最近收到了这么一个需求 xff0c 就是支持目前主流的地图APP导航 xff0c 也就是说跳转至第三方应用 说实在的一开始我是拒绝的 xff0c 不过最后还是做了 xff0c 全是体力活 xff0c 为了方便大家 xff0c 我就终结一下
  • stm32cubeMX+vscode开发编译调试stm32程序

    stm32cubeMX 43 vscode开发编译调试stm32程序 安装vscode安装make工具安装交叉编译工具链安装openocd安装clang llvm生成并编译代码配置vscode安装插件配置文件c cpp properties

随机推荐

  • 如何在 Ubuntu 20.04 上安装 Jenkins?

    介绍 当面临重复性技术任务时 xff0c 寻找可行的自动化解决方案可能是一件苦差事 使用开源自动化服务器 Jenkins xff0c 您可以有效地管理从构建到部署软件的任务 Jenkins 是基于 Java 的 xff0c 从 Ubuntu
  • 并查集

    先上题目 题目描述 如题 xff0c 现在有一个并查集 xff0c 你需要完成合并和查询操作 输入格式 第一行包含两个整数N M xff0c 表示共有N个元素和M个操作 接下来M行 xff0c 每行包含三个整数Zi Xi Yi 当Zi 61
  • 使用PN532进行IC卡的Linux和Windows平台的数据读取以及写入过程

    强调 xff1a 勿用于非法用途 本文介绍使用PN532进行IC卡的Linux和Windows平台的数据读取以及写入过程 注意 xff1a 在树莓派平台只做到了卡片解密 xff0c 并没能写入UID卡 xff0c 我不清楚具体原因 xff0
  • 必须要掌握的单链表操作大全

    前言 号外号外 xff0c 笔者最近在系统整理一些 Java 后台方面的面试题和参考解答 xff0c 有找工作需求的童鞋 xff0c 欢迎关注我的 Github 仓库 xff0c 如果觉得不错可以点个 star 关注 xff1a 1 awe
  • python数据处理(数据集的格式转换)

    摘要 本文总结常常用到的一些数据处理方法 xff0c 主要是numpy和python 数组 列表 字典的操作 一 保存N维数组 ndarray 到本地文件 本节参考原文在此 xff0c 本节复述目的是防止丢失 xff0c 时常复习 1 需求
  • python实现三维坐标旋转计算

    参考文章 xff1a python实现三维坐标旋转计算 空间三维坐标系旋转计算 计算空间三维坐标系变换一般都是利用旋转矩阵或者欧拉公式 python有个scipy库可以直接用于计算空间三维坐标变换 支持库 pip install scipy
  • Start request repeated too quickly解决方法

    脚本重启时间太快 xff0c 不清楚是什么原因 可能是默认的重启时间为0 1秒 可以添加StartLimitInterval 61 600 xff0c 600表示600秒 span class token punctuation span
  • opencv VideoWriter 保存文件,只有6k

    frame size的原因 xff0c videowriter创建的视频文件的size和要写入的frame size不一致
  • pip安装模块报错:File “D:\python\lib\site-packages\pip\_vendor\urllib3\response.py“, line 507, in read

    以下文章内容参考自 xff1a https blog csdn net qq 43348979 article details 115983927 解决参考原博 xff1a https blog csdn net liji digital
  • 自用git命令

    添加git默认信息 git config add user name 61 34 xxx 34 git config add user email 61 34 xxx 34 远程操作 git remote add origin xxxxx
  • npx命令

    参考文章 xff1a npx是什么命令 xff1f npx和npm有什么区别 xff1f 平时安装node模块的时候 xff0c 经常使用的命令是npm 其实还有另外一个命令 xff0c 叫做npx 网上的说法都是 xff1a npx是np
  • CSS替换元素

    参考文章 xff1a 替换元素 非替换元素 行内替换元素 行内非替换元素 img input到底是行内还是块级元素 xff1f 问题 xff1a img input到底是行内还是块级元素 xff1f 为什么有的行内元素可以撑开父元素 xff
  • PostgreSQL 查询怎么取到json中的字段值 有几种方法

    在PostgreSQL中可以使用多种方法来取到JSON中的字段值 xff0c 以下是其中的三种常用方法 xff1a 1 通过 gt 操作符取值 gt 操作符用于从JSON对象中提取一个键的值 例如 xff0c 假设有一个JSON对象 nam
  • Spring Data Jpa 使用关键字定义查询

    1 创建接口 BookDao java span class token keyword package span top span class token punctuation span woilanlan span class tok
  • 应用服务OkHttpClient创建大量对外连接时内存溢出

    文章目录 1 背景2 排查 2 1 原因 2 2 验证过程2 2 1 修改前2 2 2 修改后 3 解决 1 背景 最近工作中碰到一个生产问题 xff0c 就是应用服务在使用 OkHttpClient 时 xff0c 在创建大量对外连接时线
  • debian11安装docekr

    卸载旧版 apt get remove docker docker engine docker io containerd runc apt get purge docker ce docker ce cli containerd io d
  • C++中的枚举(enum)

    C 43 43 中的枚举 enum 枚举类型 enumeration 是 C 43 43 中的一种派生数据类型 xff0c 它是由用户定义的若干枚举常量的集合 枚举是一个数值集合 xff0c 是给一个值命名的一种方法 如果想要使用整数来表示
  • Django2.0版本的URL配置(笔记)

    升级到Django2 0后 xff0c URL配置发生了一些变化 以最简单的Hello World为例 xff1a views py from django http import HttpResponse def hello reques
  • Django笔记-模型层

    1 模型类定义 模型定义的基本结构 from django db import models class ModelName models Model field 61 models xxfield field 61 models xxfi
  • Django笔记(模型类-管理器)

    模型类 管理器 作用 xff1a 用于与数据库交互 每个模型类默认有一个管理器 xff0c objects objects是Django自动生成的管理器 xff0c 可以实现对数据的查询 objects是models Manger类的一个对