创建多对多:
方式一:自定义关系表
class Host(models.Model):
nid = models.AutoField(primary_key=True)
hostname = models.CharField(max_length=32,db_index=True)
ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
port = models.IntegerField()
b = models.ForeignKey(to="Business", to_field='id')
# 10
class Application(models.Model):
name = models.CharField(max_length=32)
# 2 class HostToApp(models.Model):
hobj = models.ForeignKey(to='Host',to_field='nid')
aobj = models.ForeignKey(to='Application',to_field='id') # HostToApp.objects.create(hobj_id=1,aobj_id=2) 方式二:自动创建关系表
class Host(models.Model):
nid = models.AutoField(primary_key=True)
hostname = models.CharField(max_length=32,db_index=True)
ip = models.GenericIPAddressField(protocol="ipv4",db_index=True)
port = models.IntegerField()
b = models.ForeignKey(to="Business", to_field='id')
# 10
class Application(models.Model):
name = models.CharField(max_length=32)
r = models.ManyToManyField("Host") 无法直接对第三张表进行操作 obj = Application.objects.get(id=1)
obj.name # 第三张表操作
obj.r.add(1)
obj.r.add(2)
obj.r.add(2,3,4)
obj.r.add(*[1,2,3,4]) obj.r.remove(1)
obj.r.remove(2,4)
obj.r.remove(*[1,2,3]) obj.r.clear() # 所有相关的主机对象“列表” QuerySet
obj.r.all()

  

django ORM多对多操作的更多相关文章

  1. Python - Django - ORM 多对多操作

    models.py: from django.db import models # 出版社 class Publisher(models.Model): id = models.AutoField(p ...

  2. Django ORM 多对多操作 使用聚合函数和分组 F查询与Q查询

    创建表 # models.py form django.db import models class Book(models.Model): # 表名book,django会自动使用项目名+我们定义的 ...

  3. Django ORM那些相关操作zi

    Django ORM那些相关操作   一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs) ...

  4. Django ORM 那些相关操作

    Django ORM 那些相关操作 一般操作 必知必会13条 <> all(): #查询所有的结果 <> filter(**kwargs) # 它包含了与所给筛选条件相匹配的对 ...

  5. Django ORM 多表操作

    目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向到表模型 插入数据 ORM 添加数据(添加外键) 一对多(外键 ForeignKey) 一对一 (OneToOneFeild) 多对 ...

  6. Django ORM那些相关操作

    一般操作 https://docs.djangoproject.com/en/1.11/ref/models/querysets/         官网文档 常用的操作 <1> all() ...

  7. Python - Django - ORM 多对多表结构的三种方式

    多对多的三种方式: ORM 自动创建第三张表 自己创建第三张表, 利用外键分别关联作者和书,关联查询比较麻烦,因为没办法使用 ORM 提供的便利方法 自己创建第三张表,使用 ORM 的 ManyToM ...

  8. 18-2 djanjo中间件和orm多对多操作,以及ajax

    一  中间件 0 怎样使用中间件 在setting配置文件里面注册你的中间件,如下: 'mymiddleware.MD1', 前面是文件名,后面是类名 然后在你的mymiddleware文件里导入: ...

  9. Django - orm外键操作

    1.orm外键操作 创建外键: 备注:ForeignKey两个参数,1个为关联的表名,1个为关联的字段名: 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避 ...

随机推荐

  1. IP通信基础课堂笔记----以太网VLAN

    1.以太网与802.3格式差异 2.以太网MAC地址特点 3.以太网MAC帧字节范围:64-1518 4.协议CSMA:载波侦听多路访问 5.碰撞检测 6.网卡(适配器)

  2. shell脚本定义输出字符颜色

    #-------------------定义输入颜色---------------------# RED='\033[1;31m' GREEN='\033[1;32m' YELLOW='\033[1; ...

  3. springboot配置文件(.yml)中自定义属性值并在controller里面获取

    1,由于项目需要,学习了新的框架--springboot,顺便练习一下在.yml中配置自定义属性并在controller里面获取.(以下的Springboot框架我已经搭建好,就不在陈述) 2,spr ...

  4. SMS PDU编码数据串格式分析

    PDU协议数据单元详细介绍 PDU 相当于一个数据包,它由构成消息(SMS)的信息组成.作为一种数据单元,它必须包含源/目的地址.保护(有效)时间.数据格式.协议类型和正文,正文长度可达140字节,它 ...

  5. 大数据处理N!(21<N<2000)

    输入: 每行输入1个正整数n,(0<n<1000 000) 输出: 对于每个n,输出n!的(十进制)位数 digit, 和最高位数firstNum.(n!约等于 firstNum * 10 ...

  6. 斐讯 天天牛绑定教程 邀请码:8vozbf

    天天牛邀请码 8vozbf 可以领取4代牛 最近斐讯推出了天天牛养成计划. 不过官方没有任何的指示教程,所以个人分享一个教程给大家. 1. 先把把旧的钱包备份一下 ,切记!! 而且一定要记得自己设的密 ...

  7. 2018-4-25 html基础知识

    HTML 理解HTML元素以及构成 1.理解HTML元素以及构成 HTML是一种标记语言,是由一个一个的标记组成的,用于告诉浏览器怎么构建网页的.就像人体里面的DNA一样,控制着人体的组成.同时,也正 ...

  8. python day32--struct,文件上传下载

    一.struct模块 可以把要发送的数据长度转换成固定长度的字节 struct.pack('i',数据长度) struct.unpack('i',数据长度) 二.上传下载文件作业 server imp ...

  9. 解决tomcat同时部署两个SpringBoot应用提示InstanceAlreadyExistsException

    问题描述:Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.pool:name=primary ...

  10. JSON的介绍与细节

    一.关于JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构 ...