django model 查询 笔记二 :多对多查询

 1 # -*- coding:utf-8 -*-
 2    # 没法贴链接,参考自 CSDN:shangliuyan,好像没法贴链接,打出名字特此感谢,如有问题请留
 3 from django.db import models
 4
 5
 6 # 主表
 7 class Author(models.Model):
 8     first_name = models.CharField(max_length=30)
 9     last_name = models.CharField(max_length=40)
10     email = models.EmailField()
11
12
13 # 从表
14 class Book(models.Model):
15     title = models.CharField(max_length=200)
16     authors = models.ManyToManyField(Author)
17
18 # 从表查主表
19 b = Book.objects.get(id=50)
20 b.authors.all()
21 b.authors.filter(first_name=‘Adam‘)
22
23 # 主表查从表
24 a = Author.objects.get(id=1)
25 a.book_set.all()
26
27 # 添加对象
28 a = Author.objects.get(id=1)
29 b = Book.objects.get(id=50)
30 b.authors.add(a)
31
32 # 删除对象
33 a = Author.objects.get(id=1)
34 b = Book.objects.get(id=50)
35 b.authors.remove(a) 或者 b.authors.filter(id=1).delete()

原文地址:https://www.cnblogs.com/django-start/p/8432678.html

时间: 2024-10-09 09:27:24

django model 查询 笔记二 :多对多查询的相关文章

mybatis学习笔记(11)-多对多查询

mybatis学习笔记(11)-多对多查询 mybatis学习笔记11-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders.orderdetail.items sql SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdeta

22Mybatis_订单商品数据模型_多对多查询以及对多对多查询的总结

之前讲了一对一,一对多查询,这篇文章讲的是多对多. 先给出需求:查询用户及用户购买商品信息. 我们由之前的文章知道,这个需求是多对多的. 还是那个终止我们的mybatis所做的不管是之前的一对一还是一对多还是多对多,都只是为了把查询出来的结果(每个字段)做好映射. 好,我们现在sqlyong上把数据查出来,然后做映射. 给出几张表的内容: User表: orderdetail表: orders表: items表: 我们根据需求(查询用户及用户购买商品信息)把sql语句写出来: sql: SELE

java MongoDB查询(二)复杂查询

前言 在上篇<java MongoDB查询(一)简单查询>中我们简单了解了下查询,但是仅仅有那些查询是不够用的,还需要复杂的查询,这篇就这点进行叙述. 1.数据结构 集合:firstCollection 数据内容: { "_id" : ObjectId("55adba52fa1f3cf038c2aea6"), "name" : "user0", "age" : 22, "sex&quo

django ORM 一对多, 多对多 查询 以及 结合Tamplate

ORM 表结构:和管理员是多对多, 和 OS 是一对多 class hosts(models.Model): out_ip=models.CharField(max_length=32) in_ip=models.CharField(max_length=32) app=models.ForeignKey(App) login_user=models.CharField(max_length=32) login_pwd=models.CharField(max_length=32) os=mod

SQL查询初学者指南读书笔记(二)创建SQL查询

PARTII: SQL Basics CHAPTER 4Creating a Simple Query 介绍一种如何创建SQL语句的技术--"Request/Translation/Clean Up/SQL" The SELECT operationin SQL can be broken down into three smaller operations, which we will referto as the SELECT statement,the SELECT expres

Django 10 模型层 model 元信息,对象优化查询,自定义group_concat,基于jq的ajex异步请求

Django model 元信息,对象优化查询,自定义group_concat,基于jq的ajex异步请求 Model类元信息 ORM对应的类里面包含另一个Meta类,而Meta类封装了一些数据库的信息.主要字段如下: da_table:ORM在数据库中的表名默认是 app_类名,可以通过db_table可以重写表名. index_together:联合索引 unique_together:联合唯一索引 ordering:指定默认按什么字段排序. 只有设置了该属性,我们查询到的结果才可以被rev

django模型系统(二)

django模型系统(二) 常用查询 每一个django模型类,都有一个默认的管理器,objects QuerySet表示数据库中对象的列表.他可以有0到国歌过滤器.过滤器通过给定参数,缩小查询范围(filter). QuerySet等同与select语句,过滤器等同于一个限制字句,比如where.limit 使用.query可查看对应的SQL语句 all()获取所有 name.objects.all()queryset 获取第一条 name.objects.first()返回的是对象 获取最后

Python学习笔记整理总结【Django】:Model操作(二)

1.操作汇总 # 增 # # models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs # obj = models.Tb1(c1='xx', c2='oo') # obj.save() # 查 # # models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议) # models.Tb1.objects.all() # 获取全部 # models.Tb1.objects

Django开发之路 二(django的models表查询)

django的models表查询 一.单表查询 (1) all(): 查询所有结果 # 返回的QuerySet类型 (2) filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 #返回的QuerySet类型 (3) get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个, #返回的models对象 如果符合筛选条件的对象超过一个或者没有都会抛出错误. (4) exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 #返回的Query