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中执行shell命令的几个方法小结
Sep 18 Python
wxPython中listbox用法实例详解
Jun 01 Python
Python实现全角半角字符互转的方法
Nov 28 Python
Python时间的精准正则匹配方法分析
Aug 17 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Python类装饰器实现方法详解
Dec 21 Python
python爬取内容存入Excel实例
Feb 20 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
python 标准差计算的实现(std)
Jul 29 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
学习Python列表的基础知识汇总
Mar 10 Python
Python排序算法之插入排序及其优化方案详解
Jun 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
使用php计算排列组合的方法
2013/11/13 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
javascript中常用编程知识
2013/04/08 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
react配置antd按需加载的使用
2019/02/11 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
详解Python中的__new__()方法的使用
2015/04/09 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
python程序如何进行保存
2020/07/03 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
两道JAVA笔试题
2016/09/14 面试题
jQuery treeview树形结构应用
2021/03/24 jQuery
护理学毕业生自荐信
2013/10/02 职场文书
计划生育证明格式范本
2014/09/12 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL