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内置数据结构与操作符的练习题集锦
Jul 01 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python 读取修改pcap包的例子
Jul 23 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
Django实现跨域的2种方法
Jul 31 Python
python虚拟环境模块venv使用及示例
Mar 04 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 Python
python实现进度条的多种实现
Apr 29 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
点图片上一页下一页翻页效果
2008/07/09 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
js实现坦克移动小游戏
2019/10/28 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python访问类中docstring注释的实现方法
2015/05/04 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
python实现求特征选择的信息增益
2018/12/18 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
如何理解python面向对象编程
2020/06/01 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
国际贸易专业个人鉴定
2014/02/22 职场文书
联谊会主持词
2014/03/26 职场文书
毕业评语大全
2014/05/04 职场文书
爱祖国演讲稿
2014/05/04 职场文书
质量月活动总结
2014/08/26 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
社区植树节活动总结
2015/02/06 职场文书
农村党员干部承诺书
2015/05/04 职场文书