摘自我的有道云笔记
这是一个综合查询的表单,根据各种条件组合进行查询。
查询如下: 条件一,条件二,条件三,条件四,条件五(五个条件没有从属关系,可以任意组合也可以一个都不选,且都是同一model的字段。)
问题来了:如果使用model.objects.filter(var1=条件一,var2=条件二,。。。。。。),这样进行查询的话,如果有的条件为NULL就会出错
为什么会出错呢?举个例子,如果role对象为空,那么就不能再filter里面使用role_id = role.id就会出错。
有人说你在这进行判断不就行了,如果判断的话,判断情况会非常复杂!
在网上给的办法是“动态查询”的相关信息。
之前我的写法:
修改之后的写法:
在这里定义了一个字典,然后把需要传的参数放到字典里面去。