ManyToMany 字段的使用
创建一个经典的多对多关系:一本书可以有多个作者,一个作者可以有多本书(如下,csdn复制的图片)

当进行数据迁移时,会生成三张表,了解就好
1,查询数据的操作 :
1.一本书的所有作者
b = Book.objects.get(id=1)
b.author.all()
2.一个作者的所有书籍:
a = Author.objects.get(id=1)
a.book_set.all()
2,添加数据的操作 :
a = Auther.objects.get(id=1)
b = Book.objects.get(id=3) #获取对象b
b.authors.add(a) #将对象传b (如果是删除使用b.authors.remove()a)
如果关联对象有多个时,应该先把多个对象分别添加进去:
a = Auther.objects.filter(id__gt=4)
b = Book.objects.get(id=1)
for obj in a:
b.authors.add(obj)
重点部分:使用序列化器进行添加数据(不想敲,直接上图)


ManyToMany 字段的使用的更多相关文章
- [py]django的manytomany字段和后台搜索过滤功能
我本来想搞下Django之select_related和prefetch_related的区别,看到这里有djangoapi的知识, 之前搞过django restfulapi,http://blog ...
- django manytomany
转载:http://my.oschina.net/u/572994/blog/105280 例如有如下模型 models.py ? 1 2 3 4 5 6 7 from django.db impor ...
- ManyToMany参数(through,db_constraint)
through : 指定自己写好的第三张表,我们可以给第三张表添加字段了(告诉Django不用建第三张表了,我们都给他配好了) class Book(models.Model): name=model ...
- Django---图书管理系统,多对多(ManyToMany),request获取多个值getlist(),反查(被关联的对象.author_set.all)
Django---图书管理系统,多对多(ManyToMany),request获取多个值getlist(),反查(被关联的对象.author_set.all) 一丶多对多查询 表建立多对多关系的方式 ...
- model字段对象和forms字段对象的区别和联系
一.model字段对象 (一)_meta _meta是django.db.models.options.Options的实例,获取字段对象可通过模型类来进行获取,而_meta可提供如下功能: 获取模型 ...
- Django ORM、一对一、一对多、多对多、详解
上篇博客也提到这些知识点,可能大家还是不太清楚,这篇博客为大家详细讲解ORM中的几个知识点 1.1首先我们先看一个小案例: #_*_coding:utf-8_*_ from django.db imp ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- django之DB操作
先来区分一下什么是一对一.多对多 一对一:子表从母表中选出一条数据一一对应,母表中选出来一条就少一条,子表不可以再选择母表中已被选择的那条数据: 一对多:子表从母表中选出一条数据一一对应,但母表的这条 ...
- 【原创】Django-ORM基础
概述 1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不 ...
随机推荐
- map转换成com.google.gson.JsonObject
String json =new Gson().toJson(map); JsonObject jsonObject =new JsonParser().parse(json).getAsJsonOb ...
- spring 定时器知识点
一.各域说明 字段域 秒 分 时 日 月 星期(7为周六) 年(可选) 取值范围 0-59 0-59 0-23 1-31 1-12或JAN–DEC 1-7或SUN–SAT 1970–2099 可用字符 ...
- idea 启动springboot项目报找不到主类
今天搭建的一个新springboot项目,运行启动类时控制报找不到主类错误 解决方法: 在idea控制台输入mvn clean install命令
- Kafka 学习笔记之 Kafka0.11之console-producer/console-consumer
Kafka 学习笔记之 Kafka0.11之console-producer/console-consumer: 启动Zookeeper 启动Kafka0.11 创建一个新的Topic: ./kafk ...
- el-table实现行列拖拽
element ui 表格没有自带的拖拽排序的功能,只能借助第三方插件Sortablejs来实现. 实现步骤: 安装Sortable.js npm install sortablejs --save ...
- 20191012——POI设置单元格自动行高(思路)
在经过Jxls或者POI导出数据至excel中后,发现有的单元格内容太多,既没有自动换行,也没有自动增大行高.那如何通过Java代码来实现呢?请看下面步骤: (一)首先,将excel设置为最合适的行高 ...
- 运维自动化神器ansible之group模块
ansible之group模块 group模块是用来添加或者删除组 首先使用ansible-doc来查看用法 [root@note0 ansible]# ansible-doc -s group - ...
- Mybatis入门简版(二)
一.Dao层开发的方式 以前dao层开发比较繁琐,写了接口还得写实现类,实际上用了Mybatis之后写实现类非常重复,都是重复的代码.那么此时改成另外一种简单形式. 遵循以下四个原则(名称.形参.返回 ...
- Vue-CLI项目快速UI布局-element-ui
0902自我总结 Vue-CLI项目快速UI布局-element-ui 一.element-ui的地址 https://element.eleme.cn/ 二.element-ui的安装 <!- ...
- Python_深拷贝和浅拷贝
深拷贝与浅拷贝 import copy v = 123 v1 = copy.copy(v) #浅拷贝 v2 = copy.deepcopy(v) #深拷贝 **拷贝只拷贝可变数据类型,浅拷贝只拷贝第一 ...