第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页

根据用户的筛选条件来结合分页

实现原理就是,当用户点击一个筛选条件时,通过get请求方式传参将筛选的id或者值,传入逻辑处理就行数据库条件查询,将查询条件值在返回html页面判断是否是选中样式,最后将所有需要关联的筛选请求加上彼此逻辑处理传回来的查询条件值

html请求传参

黄色背景为请求传参

红色背景为逻辑处理传过来的查询条件判断样式

<div class="wp butler_list_box list">
<div class='left'>
<div class="listoptions">
<ul>
<li>
<h2>机构类别</h2>
<div class="cont">
<a href="?leib=&chsh={{ chsh_id }}"><span class="{% ifequal lei_bie '' %}active2{% endifequal %}">全部</span></a> <a href="?leib=pxjg&chsh={{ chsh_id }}"><span class="{% ifequal lei_bie 'pxjg' %}active2{% endifequal %}">培训机构</span></a> <a href="?leib=gx&chsh={{ chsh_id }}"><span class="{% ifequal lei_bie 'gx' %}active2{% endifequal %}">高校</span></a> <a href="?leib=gr&chsh={{ chsh_id }}"><span class="{% ifequal lei_bie 'gr' %}active2{% endifequal %}">个人</span></a> </div>
</li>
<li>
<h2>所在地区</h2>
<div class="more">更多</div>
<div class="cont">
<a href="?chsh=&leib={{ lei_bie }}"><span class="{% ifequal chsh_id '' %}active2{% endifequal %}">全部</span></a>
{# 循环城市 #}
{% for ch in cheng_shi %}
<a href="?chsh={{ ch.id }}&leib={{ lei_bie }}"><span class="{% ifequal chsh_id ch.id|stringformat:'i' %}active2{% endifequal %}">{{ ch.name }}</span></a>
{% endfor %}
</div>
</li>
</ul>
</div>

逻辑处理

from django.shortcuts import render, HttpResponse, redirect                                 # 导入django向浏览器返回方法
from django.views.generic.base import View
from django.db.models import F,Q
from pure_pagination import Paginator, EmptyPage, PageNotAnInteger from app_organization.models import CityDict, CourseOrg # 数据库表 class org_list(View):
def get(self, request): # 课程机构
ji_gou = CourseOrg.objects.all() # 获取数据库的所有数据 # 城市帅选
cheng_shi = CityDict.objects.all()
chsh_id = request.GET.get('chsh', '') # 获取用户点击了城市传过来的城市id
if chsh_id:
ji_gou = ji_gou.filter(city_id=chsh_id) # 帅选出指定城市的数据 # 类别帅选
lei_bie = request.GET.get('leib', '') # 获取用户点击了城市传过来的城市id
if lei_bie:
ji_gou = ji_gou.filter(category=lei_bie) # 帅选出指定城市的数据 ji_gou_shu = ji_gou.count() # 统计获取到的数量 # 分页功能
try:
page = request.GET.get('page', 1) # 获取当前页码,如果没有默认1
except PageNotAnInteger: # 如果获取页码出错,默认1
page = 1 p = Paginator(ji_gou, 4, request=request) # 执行分页函数,参数1数据库的数据,参数2显示多少条数据,参数3request people = p.page(page) # 返回一个,包含了分页数据和分页导航的对象 return render(request, 'org_list.html', {
'cheng_shi': cheng_shi, # 城市数据
'people': people, # 将分页对象传到html页面
'ji_gou_shu': ji_gou_shu, # 机构数量
'chsh_id': chsh_id, # 城市帅选ID
'lei_bie': lei_bie # 类别
}) def post(self, request):
pass

第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页的更多相关文章

  1. 第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页

    第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页 分页可以用一个第三方分页模块django-pure-pagination 下载地址:https://github.c ...

  2. 第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码

    第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码 下载地址:https://github.com/mbi/django- ...

  3. 第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍

    第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍 配置django的admin数据库管理后台 首先urls.py配置数据库后台路由映射,一 ...

  4. 第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表

    第三百七十三节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表.验证码表.轮播图表 创建Django项目 项目 settings.py ...

  5. 第三百八十六节,Django+Xadmin打造上线标准的在线教育平台—HTML母版继承

    第三百八十六节,Django+Xadmin打造上线标准的在线教育平台—HTML母版继承 母板-子板-母板继承 母板继承就是访问的页面继承一个母板,将访问页面的内容引入到母板里指定的地方,组合成一个新页 ...

  6. 第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html

    第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入dja ...

  7. 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册

    第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...

  8. 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理

    第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...

  9. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

随机推荐

  1. DataTable 导入到Excel的最佳选择Npoi

    今天项目需要,自己先写了个,但老是觉得不完美.百度搜索了一下,现在网上主要流传2大插件,1是myxls,2是Npoi,听说后者主要是中国牛人的杰作,而且非常的强大,所以我就来试用下. 只是试用下,具体 ...

  2. cxf 相关问题

    cxf不能将String的参数序列化的问题解决 问题: java.lang.NoSuchMethodError: org.codehaus.jettison.AbstractXMLStreamWrit ...

  3. Spring Boot 中使用WebJars

    WebJars能使Maven的依赖管理支持OSS的JavaScript库/CSS库,比如jQuery.Bootstrap等: WebJars是将Web前端Javascript和CSS等资源打包成Jav ...

  4. 6. 集成学习(Ensemble Learning)算法比较

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  5. libXext.so.6: cannot open shared object file:

    在64位的centos安装64位的oracle的时候,有时候会出现“libXext.so.6: cannot open shared object file:”的错误. 这个原因主要是oracle在安 ...

  6. 未能加载文件或程序集“System.Web.Mvc, Version=3.0.0.0,

    直接下载安装 ASP.NET MVC 3.0就可以了

  7. 从零写Java Web框架——实现Ioc依赖注入

    大概思路 通过读取配置文件,获取框架要加载的包路径:base-package,类似于 Spring 配置文件中的: <context:component-scan base-package=&q ...

  8. mysql中文进行全文索引支持问题

    先来看看对一个字段做全文索引,作为一个数据库系统需要做哪些工作? 假设一个文章表里面包含几个字段:文章id.文章作者.文章标题.文章内容 比如,我们对文章内容这个字段artilce_content建立 ...

  9. C语言 · 日期计算

    算法提高 日期计算   时间限制:1.0s   内存限制:256.0MB      问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰 ...

  10. textmate常用快捷键备忘

    视图切换 Ctrl + Cmd + F # 折叠第三层 代码编辑 Cmd + Shift + V # 按照历史拷贝顺序来粘贴 Ctrl + Cmd + Option + V # 显示剪贴板 Cmd + ...