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连接oracle数据库实例
Oct 17 Python
Python实现栈的方法
May 26 Python
Python中生成Epoch的方法
Apr 26 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
python requests库的使用
Jan 06 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
Python实现归一化算法详情
Mar 18 Python
Python OpenGL基本配置方式
May 20 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
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
js数字转换为float,取N位小数
2014/02/08 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python基础教程之Filter使用方法
2017/01/17 Python
Django验证码的生成与使用示例
2017/05/20 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
为什么要用EJB
2014/04/17 面试题
办公室文员自荐书
2014/02/03 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
社区党务公开实施方案
2014/03/18 职场文书
团队精神口号
2014/06/06 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
绿色出行口号
2014/06/18 职场文书
基层党员对照检查材料
2014/08/25 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书