django 外键model的互相读取方法


Posted in Python onDecember 15, 2018

先设定一个关系模型如下:

from django.db import models
class Blog(models.Model):
 name = models.CharField(max_length=100)
 tagline = models.TextField()
 def __str__(self):   
  return self.name
 
class Author(models.Model):
 name = models.CharField(max_length=50)
 email = models.EmailField()
 def __str__(self):   
  return self.name
 
class Entry(models.Model):
 blog = models.ForeignKey(Blog)
 headline = models.CharField(max_length=255)
 body_text = models.TextField()
 authors = models.ManyToManyField(Author)
 def __str__(self):   
  return self.headline

上面的数据关系很明晰,Entry中有Blog和Author的外键,如果要在Entry中读取blog和author的数据很容易:

entry = Entry.objects.all()
for e in entry:
 blog = e.blog
 author = e.authors

要在Blog和Author中读取Entry也可以:

blog = Blog.objects.all()
entry = blog.entry_set.all()
 
author = Author.objects.all()
entry = author.entry_set.all()

下面通过entry使blog和author互相读取,比如要知道一个blog的Author只需如下:

blogs = Blog.objects.all()
for blog in blogs:
 if blog.name== “我们想要查询的博客的name”
  author = blog. entry_set.authors

要查询一个author的所有blog如下:

authors = Author.objects.all()
blogs = []
 
for author in authors:
 if author.name== “我们想要查询的Author的name”
  for entry in author.entry_set.all():
   blogs.append(entry. blog)

以上这篇django 外键model的互相读取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之变量和参数
Oct 10 Python
Python爬取读者并制作成PDF
Mar 10 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
python学习入门细节知识点
Mar 29 Python
Python命名空间的本质和加载顺序
Dec 17 Python
python剪切视频与合并视频的实现
Mar 03 Python
Python request post上传文件常见要点
Nov 20 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 Python
Python机器学习之逻辑回归
May 11 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 #Python
python调用java的jar包方法
Dec 15 #Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 #Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
Dec 15 #Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 #Python
对python当中不在本路径的py文件的引用详解
Dec 15 #Python
对python3 中方法各种参数和返回值详解
Dec 15 #Python
You might like
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
关于递归运算的顺序测试代码
2011/11/30 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
JavaScript递归算法生成树形菜单
2017/08/15 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
个人委托函范文
2015/01/29 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js
浅析Python中的随机采样和概率分布
2021/12/06 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL