Django模型进阶-多对多关系

        在Django中,多对多(Many-to-Many)关系是一种数据库关系,表示一个模型的实例可以与另一个模型的多个实例相关联,同时另一个模型的实例也可以与这个模型的多个实例相关联。换句话说,就是两个模型之间可以存在多重关联,每个实例都可以属于多个相关实例的集合。

        实现多对多关系时,Django会在数据库中自动创建一个中间表(也称为连接表或关联表),这个中间表至少包含两个字段,这两个字段都是外键,分别指向参与多对多关系的两个模型。这个中间表用于存储两个模型实例之间的关联关系,而不需要你显式地定义这个表。

创建一个新的APP

django-admin startapp Many2Many

并在settings里去注册一下

设计一下多对多的模型

执行迁移

python3 manage.py makemigrations
python3 manage.py migrate 

执行迁移以后我们看到数据库里生成了3张表,但我们在models里就设计了2张表 中间表是自动创建的

 一增加数据

执行后我们可以看到modeldb1.Many2Many_user_movie成功添加了一条数据

另一种方法 反向查询引用

执行后我们可以看到数据也被成功添加

 二删除数据

在删除数据中如果是删除单表内的数据就先查到到数据 然后执行删除

#删除User

# User.objects.filter(name="张三10").delete()

#删除Movie

# Moive.objects.filter(name="无间道10").delete()

如果要删除中间件的数据,要注意的是这里不能直接用.delete()

不然会把Movie数据库里的数据一起删除掉了 

三查询数据

 

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 2.2.2.dev20190508124537 文档 ========================== Django 文档 你所需要知道的关于 Django 的一切。 获取帮助 遇到问题?我们可以帮你! 试试 FAQ —— 这里有很多常见问题的解答。 正在寻找特定的信息?试试 索引,模块索引 或者 详细内容目录。 在 django-users 邮件列表的档案库搜索,或者 post a question。 在 #django IRC channel 频道提问 在我们的 ticket tracker 报告关于 Django 的 Bug。 这份文档是如何组织的 Django 有丰富的文档。一份高度概述的文档会告诉你在哪里找到特定的东西: 教程 通过手把手地方式教你一步步的创建一个 Web 应用。如果你初学 Django 或编程,请从这里开始。也请看看下面的 "快速入门"。 专题指南 在相当高的层次上介绍关键主题和概念,并提供有用的背景信息和解释。 参考指南 包含 API 和 Django 各个工作机制方面的技术参考。它们介绍了 Django 是如何工作,如何被使用的。不过,你得先对关键字的概念有一定理解。 操作指南 是一份目录。它们以排列好的关键问题和用例的方式指导你。它们比教程更加深入,且需要你先了解一些关于 Django 是如何工作的知识。 快速入门 您是刚学 Django 或是初学编程? 这就是你开始学习的地方! 从零开始: 概要 | 安装 入门教程: 第1节: 请求和响应 | 第2节: 模型和 admin 站点 | 第3节: 视图和模板 | 第4节: 表单和通用视图 | 第5节: 测试 | 第6节: 静态文件 | 第7节: 自定义 admin 站点 进阶教程 : 如何编写可复用的应用 | 提交你的第一个 Django 补丁 模型Django 提供了一个抽象的模型 ("models") 层,为了构建和操纵你的Web应用的数据。阅读下面内容了解更多: 模型: 模型介绍 | 字段类型 | 索引 | Meta 选项 | Model 类 QuerySet: 执行查询 | QuerySet 方法参考 | 查询表达式 Model 实例: 实例方法 | 访问关联的对象 迁移: 迁移概述 | 操作参考 | SchemaEditor | 编写迁移 高级: 管理员 | 原始 SQL | 事务 | 聚合 | 搜索 | 自定义字段 | 多个数据库 | 自定义查询 | 查询表达式 | 条件表达式 | 数据库函数 其它: 支持的数据库 | 旧数据库 | 提供初始化数据 | 优化数据库访问 | PostgreSQL 的特定功能 视图层 Django 具有 “视图” 的概念,负责处理用户的请求并返回响应。通过以下链接查找所有你需要知道的有关视图的信息: 基础: URL配置 | 视图函数 | 便捷工具 | 装饰器 参考: 内置视图 | Request/response 对象 | TemplateResponse 对象 文件上传: 概览 | 文件对象 | 存储 API | 管理文件 | 自定义存储 基于类的视图: 概览 | 内置显示视图 | 内置编辑视图 | 使用混入 | API 参考 | 扁平化索引 高级: 生成 CSV | 生成 PDF 中间件: 概览 | 内建的中间件类 模板层 模板层提供了一个对设计者友好的语法用于渲染向用户呈现的信息。学习如何使用语法(面向设计者)以及如何扩展(面向程序员): 基础: 概述 对于设计者: 语法概述 | 内建标签及过滤器(filters) | 人性化 针对程序员: 模板 API | 自定义标签(tags)和过滤器(filters) 表单 Django 提供了一个丰富的框架来帮助创建表单和处理表单数据。 基础: 概览 | 表单 API | 内建字段 | 内建 widgets 进阶: 针对模型的表单 | 整合媒体 | 表单集 | 自定义验证 开发进程 学习众多的组件及工具,来帮助你开发和测试 Django 应用: 设置: 概览 | 完整的设置列表 应用程序: 概览 异常: 概览 django-admin.py 和 manage.py: 概览 | 添加自定义命令 测试: 介绍 | 书写并运行测试 | 包含的测试工具 | 高级主题 部署: 概览 | WSGI 服务器 | 部署静态文件 | 用 email 跟踪代码错误 管理 找到所有你想知道的,关于自动化管理界面的知识,Django 最受欢迎的特性之一: 管理站点 管理动作 管理文档生成器 安全 在 Web 应用的发展中,安全是最重要主题,Django 提供了多种保护手段和机制。 安全概览 在 Django 中披露的安全问题 点击劫持保护

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值