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

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 项目中每个jar包的作用总结

    别人的总结 1.Struts2 1)commons-fileupload :2)common-io:文件上传 3)commons-lang:它扩展了标准 java.langAPI ArrayUtils ...

  2. JMeter参数文件的相对路径

    很多教程里都说“尽可能将参数文件配置为相对路径,以更好的去适配Slave环境”或者“把XX放到相对路径” 这里相对路径是指的 C:\Program Files (x86)\apache-jmeter- ...

  3. git 里面遇到的问题

    第一步:建立git仓库(本地) cd到你的本地项目根目录下,执行git命令 git init 第二步:将项目的所有文件添加到仓库中 git add . 如果想添加某个特定的文件,只需把.换成特定的文件 ...

  4. hibernate.cfg.xml_属性"connection.url"_指定字符集

    1.Oracle 2.MySQL 3. 4. 5.

  5. javascript删除JSON元素

    首先要搞清JSON的数据格式,我这里所说的JSON都是指javascript中的. JSON数据是由对象和数组数据结构组成,我们只要学会javascript中对对象和数组的删除方法即可对JSON项进行 ...

  6. html5学习笔记(audio)

    来源于<HTML5高级程序设计> audio api <audio controls> controls告诉浏览器显示播放控件 不指定 type 浏览器自解 oggMP3 ty ...

  7. spring: 在Spring应用中使用JDBC(使用profiles选择数据源/使用基于JDBC驱动的数据源)

    在实际开发过程中有很多持久化技术可供选择:Hibernate.iBATIS和JPA等.尽管如此,还是有很多应用使用古老的方法即JDBC技术,来访问数据库. 使用JDBC技术不需要开发人员学习新的框架, ...

  8. 分享知识-快乐自己:HashMap 与 HashTable 的区别

    特性: HashMap 与 Hashtable 的分析: 1):HashMap简介 1.底层数组+链表实现,可以存储null键和null值,线程不安全 2.HashMap 不是线程安全的 3.Hash ...

  9. 阿里的druid

    Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. Druid支持所有JDBC兼容的数据库,包括 ...

  10. Disruptor_学习_00_资源帖

    一.官方 disruptor-github disruptor-api LMAX Disruptor 二.精选资料 Disruptor入门-官方文档翻译-方腾飞 Disruptor官方文档实现 Dis ...