Django 多条件多表查询实例问题

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

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.

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

关于多表查询

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

 

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

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

转载于:https://www.cnblogs.com/whiteHome/p/4955000.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值