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 相关文章推荐
在Django的视图中使用form对象的方法
Jul 18 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python自定义异常实例详解
Jul 11 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
详解python分布式进程
Oct 08 Python
python http基本验证方法
Dec 26 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
Sep 04 Python
python连接、操作mongodb数据库的方法实例详解
Sep 11 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
python生成word合同的实例方法
Jan 12 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
下载文件的点击数回填
2006/10/09 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
使用angular-cli webpack创建多个包的方法
2018/10/16 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
django 微信网页授权登陆的实现
2019/07/30 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
python pip如何手动安装二进制包
2020/09/30 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
库房管理员岗位职责
2014/03/09 职场文书
学校节能减排方案
2014/06/13 职场文书
质量保证书怎么写
2015/02/27 职场文书
《鲸》教学反思
2016/02/23 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
python小程序之飘落的银杏
2021/04/17 Python