当时想做一个多条件查询,但是对于要查询的信息,是分布在不同的表里,这就涉及到了多表查询问题。

DjangoBook里提到了一些查询的方式,但是不够全面,就去百度搜了下。

当去网上百度搜多表查询,或多条件查询时,都能搜到,但是相对较综合点的信息,还是比较少。但是为了实现功能,

也思考了不少。下面贴上一些搜集来的资料。

关于多条件查询

1.

data = model.objects.filter(条件1)
if a==4:
data = data.fiter(条件2)
if b==4:
data = data.filter(条件3)

2.

kwargs = {}
if var1 != 'NONE':
kwargs['field1'] = var1
if var2 is not None:
kwargs['field2'] = var2
if var3 is not None:
kwargs['field3'] = var3
if var4 is not None:
kwargs['field4'] = var4
quest = model.objects.filter(**kwargs)

3.

 # 获取动态过滤调价
def getKwargs(data={}):
kwargs = {}
kwargs['state'] = True
for (k , v) in data.items() :
if v is not None and v != u'' :
kwargs[k] = v
return kwargs
searchCondition = {'name__icontains' : name ,....}
kwargs = utils.getKwargs(searchCondition)
model_set = Model.objects.filter(**kwargs)

关于多表查询

A表作为B表的外键,当通过B表查询A表时候,可以通过__(两个下划线)的方式过滤A表的内容

基本有这两个知识,综合起来就可以进行多表条件查询了。

然后是一些自己的代码,就不发了。

Django 多条件多表查询实例问题的更多相关文章

  1. [重要] Django 多条件多表查询实例问题

    当时想做一个多条件查询,但是对于要查询的信息,是分布在不同的表里,这就涉及到了多表查询问题. DjangoBook里提到了一些查询的方式,但是不够全面,就去百度搜了下. 当去网上百度搜多表查询,或多条 ...

  2. 数据库开发-Django ORM的单表查询

    数据库开发-Django ORM的单表查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询集 1>.查询集相关概述 查询会返回结果的集,它是django.db.mod ...

  3. Yii框架 多表查询实例

    Yii框架多表查询实例:总共分为两个步骤(以下的代码我全部都写在model中):1.先在主表model中声明关联表中所需要查询的字段. public $surveyls_description; // ...

  4. python 之 Django框架(orm单表查询、orm多表查询、聚合查询、分组查询、F查询、 Q查询、事务、Django ORM执行原生SQL)

    12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefaul ...

  5. Django中的跨表查询,多表查询。

    一:Django中的ORM进行操作. 必须掌握的十三条: <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 & ...

  6. 057.Python前端Django模型ORM多表查询

    一 基于对象的查询 1.1 一对多查询 设计路由 from django.contrib import admin from django.urls import path from app01 im ...

  7. django中的跨表查询梳理

    1.前言 最近在写一个小项目,里面主要涉及的就是表与表之间复杂的关系.当真正开发起来的时候,才发现自己对复杂的表关系间的查询有点混乱,趁着这几天的时间,重新梳理了一下. 2.概念 在开始之前,先明确几 ...

  8. django之orm单表查询

    这几天重新学习了一下django的orm,以此作为记录来分享. Part1:修改配置,生成表 在写数据和查数据之前,首先先得把django配置一下,具体配置如下: 1.先在公共项目的settings中 ...

  9. MySQL单表查询实例

    数据表准备 ​```mysql create table emp( id int not null unique auto_increment, name varchar(20) not null, ...

随机推荐

  1. java应用线上CPU过高问题排查

    1.top 命令,查看占用CPU最高的PID.ps aux|grep PID 进一步确定tomcat进程出现问题.2.ps -mp pid -o THREAD,tid,time显示线程列表3.prin ...

  2. matplotlib柱状图

    import numpy as np import matplotlib.pyplot as plt size = 5 a = np.random.random(size) b = np.random ...

  3. Ceilometer 数据库比较

    Ceilometer和其他OpenStack项目相比,部署中比较不同的是Ceilometer可以选用多种不同的后台数据库来保存测量值和警告器. 目前Ceilometer支持的后台数据库及及其相应的配置 ...

  4. [JSOI2016]灯塔

    Description $JSOI$的国境线上有$N$一座连续的山峰,其中第$i$座的高度是$h_i$​​.为了简单起见,我们认为这$N$座山峰排成了连续一条直线. 如果在第$i$座山峰上建立一座高度 ...

  5. 洛谷P1027 Car的旅行路线

    洛谷P1027 Car的旅行路线 题目描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速 ...

  6. python中的单引号双引号和三引号

    python的单引号和双引号没有本质的区别,而三引号有两种作用:注释和换行 一. 单引号中可以包含双引号,双引号中可以包含单引号 print("好好学习,'天天向上'") 结果: ...

  7. U14739 X ask Y III 子区间异或和

    题意:就是求所有子区间的异或和的和 题解:就是算每一位对结果的贡献(最近好像遇到很多次这种题目),先前缀异或,从左向右扫记录二进制前缀的1,0个数,xor[i]==xor[j]^1的时候就加上这一位的 ...

  8. App Store下载Mac应用失败的解决办法

    1. 更换DNS服务器 国内可以用alidns: 223.5.5.5 223.6.6.6 也可以用电信的: 114.114.114.114 国外的可以考虑Google 8.8.8.8 8.8.4.4 ...

  9. HDU 2203 kmp

    http://acm.hdu.edu.cn/showproblem.php?pid=2203 亲和串 Time Limit: 3000/1000 MS (Java/Others)    Memory ...

  10. 原生js模态框实现

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...