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发送各种形式的邮件的方法汇总
Nov 09 Python
python中OrderedDict的使用方法详解
May 05 Python
答题辅助python代码实现
Jan 16 Python
详解python中的装饰器
Jul 10 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Python 画出来六维图
Jul 26 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
详解python tcp编程
Aug 24 Python
python关于倒排列的知识点总结
Oct 13 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 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/04/18 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
react-router实现按需加载
2017/05/09 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
实例讲解JavaScript预编译流程
2019/01/24 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
C#的几个面试问题
2016/05/22 面试题
英文自荐信
2013/12/15 职场文书
旅游网创业计划书
2014/01/31 职场文书
学校运动会霸气口号
2014/06/07 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python