当前位置: 首页 > news >正文

python主流框架Django:ORM框架关联查询与管理器

管理器Manager

  • 管理器的基本概念

    管理器是Django的模型进行数据库操作的接口,Django应用的每个模型类都拥有至少一个管理器。
    我们在通过模型类的objects属性提供的方法操作数据库时,即是在使用一个管理器对象objects。当没有为模型类定义管理器时,Django会为每一个模型类生成一个名为objects的管理器,它是models.Manager类的对象。
  • 自定义管理器

    我们可以自定义管理器,并应用到我们的模型类上。
    -- 注意:一旦为模型类指明自定义的管理器后,Django不再生成默认管理对象objects。
  • 自定义管理器类主要用于两种情况:

    • 情况一: 修改原始查询集,重写all()方法。

      • a)打开books/models.py文件,定义类BookInfoManager

        #图书管理器class BookInfoManager(models.Manager):def all(self):# 默认查询未删除的图书信息# 调用父类的成员语法为:super().方法名return super().filter(is_delete=False)
        • b)在模型类BookInfo中定义管理器

          class BookInfo(models.Model):...books = BookInfoManager()

        • c)使用方法

          # 修改模型类以后需要重新进入交互环境
          BookInfo.books.all()

      • 情况二: 在管理器类中补充定义新的方法

      • a)打开booktest/models.py文件,定义方法create。

        class BookInfoManager(models.Manager):def create_book(self, title, pub_date):# self.model可以获得模型类的实例对象book = self.model()book.btitle = titlebook.bpub_date = pub_datebook.bread=0book.bcommet=0book.is_delete = False# 将数据插入进数据表book.save()return book

      • b)为模型类BookInfo定义管理器books语法如下

        
        class BookInfo(models.Model):...books = BookInfoManager()

      • c)调用语法如下

        
        from datetime import datebook = BookInfo.books.create_book("大话西游",date(1980,1,1))

http://www.lryc.cn/news/466087.html

相关文章:

  • 如何有效维护您的WordPress在线商店内容:提高客户参与度与转化率的实用技巧
  • 【Java】认识异常
  • 20 Shell Script输入与输出
  • HCIP-HarmonyOS Application Developer 习题(十六)
  • 没有什么可以抵达乌托邦,包括AI
  • 家庭事务管理系统|基于java和vue的家庭事务管理系统设计与实现(源码+数据库+文档)
  • doris创建异步物化视图(加速数据低频变更的复杂实时计算)
  • PhpSpreadsheet创建带复杂表头的excel数据
  • BurpSuite渗透工具的简单使用
  • 洞察云上风险,主机安全尽在掌握
  • 使用kimi编辑助手,开始搭建一个微信小程序!第一天
  • 【已解决】libev not found
  • qt QVariant详解
  • 再获殊荣!通付盾当选信息技术应用创新工作委员会技术活动单位称号
  • PostgreSQL模板数据库template0和template1的异同点
  • 手机ip切换成全局模式怎么弄
  • 前端学习笔记(1.0)
  • 推动TMS-EEG数据预处理标准化
  • 国产电脑能装win系统吗_国产电脑安装windows要求及方法
  • C#Winform的控件基类Control
  • 汽车电子行业的LIMS:提升质量与效率的关键助力
  • 移动端面试问题笔记(一)
  • 从壹开始解读Yolov11【源码研读系列】——cfg:模型配置加载功能
  • 【数据库设计】逻辑结构设计
  • uni-app之旅-day07-购物车页面
  • 【机器学习】并行计算(parallel computation)Part2
  • AI学习指南深度学习篇-迁移学习的应用场景
  • 【web前端设计】jquery图标动画特效
  • Linux——用户/用户组
  • HDFS上传下载命令