正文共:832字 1 图
预计阅读时间:3分钟

今日分享

小闫同学pythonnote.cn

查看:13154回复:541

Incredible change happens in your life when you decide to take control of what you do have power over instead of craving control over what you don't.

——  Steve Maraboli

Django 由一查多的各种方式。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

BookInfo 是一, HeroInfo 是多( HeroInfo 定义了外键,对应 BookInfo

一、单个对象查询

一对应的模型类对象.多对应的模型类名小写_set

b = BookInfo.objects.get(id=1)

b.heroinfo_set.all()

二、多个对象同时查询

使用 values_list 方法实现 left join 效果。

一对应的模型类对象.objects.values_list(要查询的字段名, ...)

BookInfo.objects.valueslist('heroinfo__id', 'heroinfo__name')

由一查多时, values_list 中会有一个字段(该字段是多模型类对象小写名),根据此字段可以查询多对象。如果要查询多对象的某个属性,则用两个下划线链接 heroinfo__id

注意: 如果列出多个字段时, flat=True 属性不能使用,将多个字段同时列出即可。最后的查询结果是 Queryset 对象,可以通过工厂方法 list() 进行转换。转换后效果是列表套元祖,形如:更多精彩文章请关注公众号『Pythonnote』

[('34143124', '小闫同学'), ('4321443', '小闫同学'), ...]

如何将列表套元祖转换为列表套字段的形式

a = ('4321', '小闫')

b = ('id', 'name')

dict(zip(b, a))

Django由一查多相关推荐

  1. Django增删改查--图书管理系统

    一对一     出版社信息的增删改查 一对多    出版社信息与书籍信息的增删改查 多对多    书籍信息与作者信息的增删改查 建表 from django.db import modelsclass ...

  2. Django QuerySet速查手册

    Django为我们提供了一套与数据库交互的机制,让我们能够更便捷的对数据库进行增删改查.Django 对数据库的操作依赖于它的 ORM 系统,Django ORM 主要包括Manager.QueryS ...

  3. Person matching query does not exist;Django增删改查异常

    1.数据库在删除或修改时常出现Person matching query does not exist的错误,是因为在链接路由是忘记传参,一般是忘记传id参数. 错误代码 <td>< ...

  4. python diango 增删改查_python中关于django对数据库Mysql的增删改查操作详解

    下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 下面介绍一下django增删改查操作: ...

  5. Django 3.2.5博客开发教程:一些常用的模板使用方法

    一.django static文件的引入方式 1.在django project中创建 static文件夹 2.settings.py中配置要在 STATIC_URL = '/static/' 下边 ...

  6. django mysql filter_Django filter中用contains 在mysql中的问题

    用PYTHON ,DJANGO 做站,在通常的情况下,需要用到 orM 的查询方法,比如object.filter(tag__contains='keywords').... 在这种情况下,如果你跟踪 ...

  7. Django基础02 视图和模型

    2. Django的V和M 2.1 视图(views) 视图是Django程序中处理后端业务逻辑的地方. Django的视图是定义在子应用的views.py中的. Django的视图分为 函数视图 和 ...

  8. 静态html如何写入文件,静态HTML模板渲染

    1.模板配置 在 setting.py 中配置 TEMPLATES BACKEND 解析HTML静态文件的模板引擎类型 DIRS 一个文件夹目录的列表,如果设置,则 django 会在这里指定的目录中 ...

  9. Python Web实战:Python+Django+MySQL实现基于Web版的增删改查

    本文使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能. 1.创建项目(sms) 创建Django项目 django-admi ...

最新文章

  1. 掌握Python 机器学习 读书笔记 9 (流水线 算法保存)
  2. 通过nodejs插入删除MongoDB数据
  3. php7.0扩展yac,php扩展之yac安装
  4. Visual Studio——fatal error C1902: Program database manager mismatch; please check your installation
  5. java模拟手机浏览web_PC上测试移动端网站和模拟手机浏览器
  6. java代码-----逻辑运算符
  7. 90%测试猿都想学的Jmeter技能,你get吗?
  8. 使用ServletContextListener关闭Redisson连接
  9. angular中的装饰器 详解
  10. 关于我的家乡介绍网站设计—— 大连介绍(6页) 网页设计作业 / 家乡网页设计作业,网页设计作业 / 家乡网页设计成品,网页设计作业 / 我的家乡网页设计成品模板下载
  11. 伺服速度控制模式接线图_伺服驱动器控制模式的接线及其注意事项
  12. Linux的时间戳换算
  13. DBA-数据库管理员
  14. string类的深拷贝和浅拷贝
  15. python基于ocr的视频字幕提取
  16. bboss ioc快速入门教程
  17. 电气火灾监控系统在杭州湾新区产业园区一期的设计与应用——安科瑞 陆琳钰
  18. 【工具】60 个相见恨晚的神器工具
  19. python map函数的作用_Python map()函数介绍及用法
  20. 传说中的“群控”!云控群控、线控群控到底是什么?

热门文章

  1. 定义一个方法,使用随机的字母+数字生成一个6位数的密码
  2. Vue项目中设置背景图片
  3. java web编写的在线问卷系统 完整源码 下载直接运行
  4. 找不到位于wsd扫描的计算机,在基于 Windows 的计算机上单击新扫描 Windows 传真和扫描时出现错误消息...
  5. 从0开始构建蓝牙耳机研发环境
  6. ubuntu 启动 meld、diffuse失败
  7. veracrypt源码编译
  8. 使用vuepress搭建一个完全免费的个人网站
  9. 那款降噪耳机好用?平价党降噪耳机推荐
  10. 上一页 1 2 3 ... 10 下一页 固定分页