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 获取本机ip地址的两个方法
Feb 25 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python 多进程队列数据处理详解
Dec 23 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
Feb 17 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python设置中文界面实例方法
Oct 27 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
Python使用DFA算法过滤内容敏感词
Apr 22 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/15 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
javascript正则表达式总结
2016/02/29 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
2017/08/26 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Python基于time模块求程序运行时间的方法
2017/09/18 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
python实现画一颗树和一片森林
2018/06/25 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
ORACLE十问
2015/04/20 面试题
什么是Assembly(程序集)
2014/09/14 面试题
业务员简历自我评价
2014/03/06 职场文书
学校施工安全责任书
2015/01/29 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python