tags: django中对条件查询
一些cms项目都会使用到多条件查询,我们后端如何处理请求的条件呢?
满足一个条件
满足两个条件
满足多个条件
………………….
这样处理起来会非常的恼火. 其实有多方法比如(传参数,传字典,传Q对象,传F对象…)陷入深深的思考中…怎么用做简单的方法把这个需求解决了.
个人觉得.把我们的查询的所有条件来构建一个字典来查询起来比较高效.具体如何操作见下面的代码:
视图函数.
def order_list(request): if request.method == 'GET': return render(request, 'admin/order_list.html') if request.method == 'POST': # 获取案件号 case_order = request.POST.get('case_order') # 获取客户姓名 case_name = request.POST.get('case_name') # 获取身份证号码 idno = request.POST.get('idno') # 获取贷款日期 loan_date = request.POST.get('loan_date') # 获取贷款状态 state = request.POST.get('state') # 获取贷款类型 dk_type = request.POST.get('dk_type') # 定一个字典用于保存前端发送过来的查询条件 search_dict = dict() # 如果有这个值 就写入到字典中去 if case_order: search_dict['loan_id'] = case_order if case_name: search_dict['name'] = case_name if idno: search_dict['user_card'] = idno if loan_date: search_dict['pri_date'] = loan_date if state: # 通过关联关系查询出来需要的数据 state_info = StatuTable.objects.filter(statu_name=state).first() search_dict['statu_id'] = state_info.statu_id if dk_type: loa = LoantypeTable.objects.filter(loan_name=dk_type).first() search_dict['loa_loan_id'] = loa.loan_id # 多条件查询 关键点在这个位置传如的字典前面一定要加上两个星号. user_order_info = UserTable.objects.filter(**search_dict) # 序列化 data_info = [user_order.to_dict() for user_order in user_order_info] data = { 'code': 200, 'data_info': data_info } return JsonResponse(data)
Models见上一篇文章
传送门 Model
前端html页面
// 使用jquery就必须引入 // 需要使用ajaxSubmit去提交表单就必须引入 // 使用template.js渲染页面就必须引入查询还款案件
{% verbatim %} {% endverbatim %} 申请编号 客户名称 联系方式 身份证号码 办理日期 处理人 处理状态 处理时间 操作 后端搞定了就可以在前端写ajax去渲染页面了.
$(function () { var token = $(':input[name="csrfmiddlewaretoken"]').val() $('#search-order').submit(function () { $(this).ajaxSubmit({ url: '/admin/order_list/', dataType: 'json', type: 'POST', headers: {'X-CSRFToken': token}, success: function (data) { if (data.code == 200) { var html ='\n' + ' ' var tr_html = template('tr_list', {users: data.data_info}) html += tr_html $('#test').html(html) } } }) // 阻止默认提交 return false; }) })申请编号 \n' + '客户名称 \n' + '联系方式 \n' + '身份证号码 \n' + '办理日期 \n' + '处理人 \n' + '处理状态 \n' + '处理时间 \n' + '操作 \n' + '总结:
重点就在怎么构建字典后最后构建好的字段如何传参的问题.
以上这篇解决Django中多条件查询的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
如何解决《Thread.Sleep(2500)vs.Task.Delay(2500).Wait()》经验,为你挑选了2个好方法。 ... [详细] 如何解决《C#代码在Unity中不起作用》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在Swift中的UIPopoverController上设置多个箭头方向》经验,为你挑选了1个好方法。 ... [详细] 如何解决《带有指示器和下一个/上一个按钮的Onsen-UICarousel》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Python:它不允许我使用Tkinterroot=Tk()错误》经验,为你挑选了1个好方法。 ... [详细] 如何解决《对数组进行排序,以便第一个和最后一个元素形成"对"》经验,为你挑选了1个好方法。 ... [详细] 如何解决《jsfiddle中没有框架部分》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在Python3中安装和运行模块(入门)》经验,为你挑选了1个好方法。 ... [详细] 如何解决《多列表理解》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何获取字符串中组的所有排列?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《浏览器支持Angular材质》经验,为你挑选了2个好方法。 ... [详细] 如何解决《在C#中的接口实现中使用继承的接口》经验,为你挑选了1个好方法。 ... [详细] 如何解决《打印任何STL容器》经验,为你挑选了2个好方法。 ... [详细] 如何解决《当我需要总数时生成NAN》经验,为你挑选了1个好方法。 ... [详细] 如何解决《响应式图像拉伸-基于y轴的网格?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《显示分配堆栈跟踪时防止程序崩溃》经验,为你挑选了1个好方法。 ... [详细] 如何解决《斯坦福依赖解析器设置和NLTK》经验,为你挑选了1个好方法。 ... [详细] 如何解决《SecCopyErrorMessageString在swift中给出"使用未解析的标识符"》经验,为你挑选了1个好方法。 ... [详细] 如何解决《为什么我还需要打开Swift字典值呢?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《ClassCastExceptionDoubletoFloat,即使我没有使用Double》经验,为你挑选了1个好方法。 ... [详细]吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1为什么这个SBV代码在达到我设定的限制之前就停止了?
- 2无法访问Friend类的私有构造函数
- 3Spotify Iframe打开新页面或打开应用程序而不是在同一站点中播放
- 4故事板可以用作tvos的发布屏幕吗?
- 5如何在Xcode 7中一次删除多个集成?
- 6为什么[False]中的False == False返回True?
- 7在Java 8中做红宝石注入的优雅方式
- 8片段 - 在运行方法之前等待onCreateView()完成
- 9如何在使用scalaz时为布尔创建半群?
- 10Service Fabric具有配置覆盖的多个服务实例
- 11来自抽象类的unique_ptr的shared_ptr
- 12Facebook注销无法在Android上使用[Facebook SDK 4]
- 13Postgres - 将两列聚合成一个项目
- 14在Python中用空格排序字符串列表
- 15何时使用ScreenAdapter和何时使用Screen
- 16NSDateFormatter无法在12小时制设置时返回英国地区的日期时间
- 17如何在Code :: Blocks中使用C11标准
- 18phantomjs +网络字体+字体加载器
- 19java 8中是否有一个实现"以null结尾"的流而不必自己滚动的类?
- 20如何在Elm中创建Date变量
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有