django列表筛选功能的实现代码

views,中设置请求的类型

class LawDetailView(View):
 def get(self, request, law_id):
  type = request.GET.get('type', '')
  law = Law.objects.get(id=law_id)

  return render(request, 'zcfg-detail.html', {
   'law': law,
   'type': type,
  })

templates,中设置:

<div class="col-lg-12" style="margin-bottom: 20px;">
    <a class="{% if type == '' %}btn btn-danger{% else %}btn btn-default{% endif %}" href="?type=" rel="external nofollow" role="button">全部</a>
    <a class="{% if type == 'fl' %}btn btn-danger{% else %}btn btn-default{% endif %}" href="?type=fl" rel="external nofollow" role="button">法律</a>
    <a class="{% if type == 'xzfg' %}btn btn-danger{% else %}btn btn-default{% endif %}" href="?type=xzfg" rel="external nofollow" role="button">行政法规</a>
    <a class="{% if type == 'bmgz' %}btn btn-danger{% else %}btn btn-default{% endif %}" href="?type=bmgz" rel="external nofollow" role="button">部门规章</a>
    <a class="{% if type == 'dfgz' %}btn btn-danger{% else %}btn btn-default{% endif %}" href="?type=dfgz" rel="external nofollow" role="button">地方规章</a>
</div>

补充知识:django 一种动态查询的便捷实现过程

问题引出

你可能遇到这种情况,在前端页面上有查询功能,要查询的输入选择有A,B,C等,可以通过任意一个查询,或者任意组合进行查询。

在后端,你可以使用request.GET['A']获取传入的数值。

我们需要判断哪个有输入,再在数据库中进行查询,这样比较麻烦。

解决方案

动态实现查询过程

kwargs = {}
if A is not None:
 kwargs['name__startWith'] = A
if B is not None:
 kwargs['address__contains'] = B
if C is not None:
 kwargs['mobile__endWith'] = C
...
...
personList = Person.objects.filter(**kwargs)
...

注:

A B C 等,为前端传输过来的数据

name address mobile 等,需为你要查询的表的属性字段

startWith contains endWith 等,为你要筛选的规则

Person 为model 表名

以上这篇django列表筛选功能的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Django models filter筛选条件详解

    条件选取querySet的时候,filter表示=,exclude表示!=. querySet.distinct() 去重复 __exact 精确等于 like 'aaa' __iexact 精确等于 忽略大小写 ilike 'aaa' __contains 包含 like '%aaa%' __icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains. __gt 大于 __gte 大于等于 __lt 小于 __

  • Django choices下拉列表绑定实例

    Models内容 from django.db import models from django import forms # Create your models here. class SysConfigForm(forms.Form): DatabaseType = forms.ChoiceField(choices=[('sqlserver', 'SQLServer'), ('oracle', 'Oracle')]) class UserInfo(forms.Form): vip_ty

  • django列表筛选功能的实现代码

    views,中设置请求的类型 class LawDetailView(View): def get(self, request, law_id): type = request.GET.get('type', '') law = Law.objects.get(id=law_id) return render(request, 'zcfg-detail.html', { 'law': law, 'type': type, }) templates,中设置: <div class="col-

  • VUE实现移动端列表筛选功能

    最近兴趣所致,打算使用vant搭建一个webapp,由于需要使用列表筛选,没有找到合适组件,于是写了一个简单的功能,权当记录. 效果如下: HTML: <div class="filterbar"> <div class="filterbar-title"> <ul class="title-ul"> <li :class="{'title-li':true, 'current': item.i

  • Android Filterable实现Recyclerview筛选功能的示例代码

    原先碰到筛选这种功能时,后端的接口都会让上传一个字段,根据字段来返回相应的数据.后来一次和别人对接时,接口直接返回全部数据,而且还要实现筛选功能.我...我说不就是一条sql语句的事,改接口多方便,我苦心劝导,然后被怼回来,切,不就是筛选嘛,求人不如自己搞. 1. 效果图 2. 思路 既然是筛选,那就少不了比较.也没有什么好的办法,无非就是循环对比,然后将适配器进行数据更新.页面刷新即可.但筛选的调用要方便,怎么比较才方便我们调用呢?偶然间看到了Filterable,使Adapter继承自该接口

  • element-ui组件table实现自定义筛选功能的示例代码

    element-ui默认的table组件支持的表头筛选(过滤)是比较简单的,只支持数组的方式,单选或多选的形式,但有时候我们喜欢支持输入框形式(其实感觉有点扯淡,一般列表页上面都有搜索条件). 注意:里面用到的jsx语法,可能需要安装一些插件. 准备工作: 1.安装babel-plugin-jsx-v-model插件 npm i babel-plugin-jsx-v-model -D 或者 yarn add babel-plugin-jsx-v-model -D 2..babelrc: { "p

  • Django 实现购物车功能的示例代码

    购物车思路:使用 session 功能识别不同浏览器用户,使得用户不管是否登录了网站,均能够把想要购买的产品放在某个地方,之后随时可以显示或修改要购买的产品,等确定了之后再下订单,购物车可以用来暂存商品. 我们可以使用 session 为每一个用户创建一个 ID,然后以这个 ID 作为创建每一个购物车的依据.这个购物车在用户浏览过程中会保留数据,一直到实际完成下单,用户执行清除,或者关闭浏览器为止,当然,退出登录的话购物车内容也会消失不见. 在 settings.py 文件中加入下列语句,表示要

  • Android实现二级列表购物车功能

    本文实例为大家分享了Android实现二级列表购物车功能的具体代码,供大家参考,具体内容如下 MainActivity: package com.baway.twoshopcar; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.CheckBox; import android.widget.Expa

  • android实现RecyclerView列表单选功能

    本文实例为大家分享了android实现RecyclerView列表单选功能的具体代码,供大家参考,具体内容如下 实现思维 1.首先在一行的xml布局中添加一个选中效果的icon图片,未选中的情况下INVISIBLE或者GONE 都可以,推荐使用INVISIBLE它会占用布局位置但是不显示,这样可以避免布局中其他控件因为勾选布局的消失而轻微变动位置 2.将适配器类中的onCreateViewHolder方法重写添加按键监听,onBindViewHolder方法中重写添加判断点击的位置(具体原理请查

  • 小程序实现列表删除功能

    本文实例为大家分享了小程序列表删除功能的具体代码,供大家参考,具体内容如下 地址簿删除,先获取当前地址部分的id值,根据id值来删除对应的地址部分. 获取全部的地址信息,定义一个空的数组newallData,用来放置新的地址信息. 在全部地址信息中删除选中的id的地址信息,生成新的地址信息放入定义的空数组中. 现在newallData就是删除选中地址信息以后剩下的地址信息,在newallData中的信息渲染在页面. wml文件: <!-- 删除 --> <view class="

  • 原生js实现商品筛选功能

    本文实例为大家分享了js商品筛选功能的具体代码,供大家参考,具体内容如下 用到的知识:js基础.dom.第一种方法用到的是js中的数组方法,第二种方法用到的是json和for-in以及es6 实现步骤 1.根据数据结构生成HTML结构(利用dom操作) 2.获取每一个li,给每一个li中每一个a标签绑定事件处理函数 3.点击a标签,把a标签的内容添加在对象中,同时添加样式 4.根据对象存的属性生成选择则条件的HTML结构(按顺序排列) 5.点击关闭选择的条件,删除数据,移除HTML结构,去除在其

  • js实现筛选功能

    本文实例为大家分享了js实现筛选功能的具体代码,供大家参考,具体内容如下 功能 通过复选框对显示内容进行筛选,如,勾选后仅显示在线用户. 代码 js ※需 jQuery. function filter() { var check =document.getElementById('checkbox'); var members = $('.member'); var status = $('.memberStatus'); if (check.checked) { members.each(f

随机推荐