Django中前端界面实现级联查询
Django前端界面实现级联查询
一、前端界面中
<span scope="col" colspan="6">
院系:<select id="dept" name="deptid" class="select radius mr-10" style="width: 20%">
<option value="default" >请选择院系</option>
{% for dept in deptList %}
{% if deptid == dept.deptid %}
<option value="{{ dept.deptid }}" selected>{{ dept.deptname }}</option>
{% else %}
<option value="{{ dept.deptid }}">{{ dept.deptname }}</option>
{% endif %}
{% endfor %}
</select>
专业:<select id="major" name="majorid" class="select radius mr-10" style="width: 20%">
<option value="default" selected>请选择专业</option>
{% for major in majorList %}
{% if majorid == major.majorid %}
<option value="{{ major.majorid }}" selected>{{ major.majorname }}</option>
{% else %}
<option value="{{ major.majorid }}">{{ major.majorname }}</option>
{% endif %}
{% endfor %}
</select>
</span> $(function () {
// 改变院系后
$('#dept').change(function () {
var deptid = $("#dept").val();
// 清空专业
$("#major").empty().append('<option value="default">请选择专业</option>');
var majorid = $("#major").val();
// 跳转
window.location.href="{% url 'basic:getGrade' %}?deptid="+deptid+"&majorid="+majorid
});
// 改变专业后
$('#major').change(function () {
var deptid = $("#dept").val();
var majorid = $("#major").val();
// 跳转
window.location.href="{% url 'basic:getGrade' %}?majorid="+majorid+"&deptid="+deptid
});
})
二、views
def getGrade(request):
'''
获取到所有的班级信息(级联查询,应用分页)
:param request:
:return:
'''
deptid = request.GET.get('deptid') # 获取级联菜单中的院系id
majorid = request.GET.get('majorid') # 获取级联菜单中的专业id
current_page = request.GET.get('p', 1)
current_page = int(current_page) # 当前页
depts = models.TDept.objects.all() # 获取所有的院系信息
deptList = []
for dept in depts:
major = models.TMajor.objects.filter(dept=dept)
if major:
deptList.append(dept) # 获取到所有 有专业的 院系信息
majors = []
gradeList = []
if deptid == 'default' or deptid is None and majorid == 'default' or majorid is None: # 级联菜单无选项时
gradeList = models.TGrade.objects.all().order_by('gradeid')
elif deptid and majorid == 'default':
gradeList = models.TGrade.objects.filter(major__dept__deptid=deptid) # 级联菜单选择院系时
majors = models.TMajor.objects.filter(dept=deptid)
elif majorid:
gradeList = models.TGrade.objects.filter(major__majorid=majorid) # 级联菜单选择专业时
majors = models.TMajor.objects.filter(dept=deptid)
page_obj = pagination.Page(current_page, len(gradeList)) # 创建分页对象
data_len = page_obj.data_count # 获取总数据数量
pages = page_obj.page_pages # 获取总页数
data = gradeList[page_obj.start:page_obj.end] # 获取单页数据
page_str = page_obj.page_str('/basic/getGrade') # 传递base_url
return render(request,'bg/basic/listgrade.html',
{'gradeList':data,'data_len':data_len,'pages':pages,'page_str':page_str,
'current_page':current_page,'deptList':deptList,'majorList':majors,
'deptid':deptid,'majorid':majorid})
Django中前端界面实现级联查询的更多相关文章
- Oracle number类型前端界面和数据库查询不一致 number精度问题
[发现问题] [问题分析] Ⅰ.在前端界面查询,发现了库存中存在这样的数量值.但是在数据库中查询时显示正常.即6.999999999999997 为 7. Ⅱ.至于这种小数产生,我以为是oracle存 ...
- 测试开发之Django——No4.Django中前端框架的配置与添加
我们在开发一个web项目的时候,虽然我们不是专业开发,但是我们也想要做出来一个美美的前端页面. 这种时候,百度上铺天盖地的前端框架就是我们的最好选择了. 当然,在网上直接下载的框架,我们是不能直接用的 ...
- Django中获取参数(路径,查询,请求头,请求体)
一.通常HTTP协议向服务器传参有几种途径 : 提取URL的特定部分,如/weather/shanghai/2018,可以在服务器端的路由中用正则表达式截取: 查询字符串(query string), ...
- Django 中的select_related函数优化查询
参考链接: https://blog.csdn.net/secretx/article/details/43964607 在数据库有外键的时候,使用select_related()和prefech_r ...
- Django中的ORM关系映射查询方面
ORM:Object-Relation Mapping:对象-关系映射 在MVC框架中的Model模块中都包括ORM,对于开发人员主要带来了如下好处: 实现了数据模型与数据库的解耦,通过简单的配置就可 ...
- django中使用原生的sql查询实例
在app文件夹下创建database_operations.py文件,写如下内容: import pymysql from 项目名.settings import DATABASES class Da ...
- django中Model表的反向查询
很多时候需要在多张表之间进行跨表查询,这其中外键是必须存在的,而通过外键所处的表的对象进行跨表查询, 称为正向查询.反之,则是反向查询. 正向查询很简单,这里不谈. 主要谈下反向查询. class U ...
- Django中的许可(Permissions)和用户组(Group)
Reference: http://www.cnblogs.com/esperyong/archive/2012/12/20/2826690.html 接着上面的3篇讨论文章,我们阐述了Django中 ...
- django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066
1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate(*args,**kwargs) : 通过对QuerySet进行计算 ,返回一个聚合值的字典. ...
随机推荐
- 不该被忽视的CoreJava细节(一)
一.系列文章导言 <不该被忽视的CoreJava细节>系列文章将会持续更新.我希望自己通过这一系列文章的写作,能与读者一起进步,逐步完善对Java体系结构的了解. 二.本期关注点 几乎翻看 ...
- javascript实现 滚动条滚动 加载内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [Rails学习之路]初识Ruby(二)
继续上次Ruby的学习.接下来就到了Ruby的方法. Ruby的方法与Python仍然很像.使用def定义,可以使用undef取消定义. 在Ruby中,经常可以看见方法后面跟有"?" ...
- #linux 下Sublime的安装
1.Download http://www.sublimetext.com/2 Installtion use tar 解压压缩包,这里我将包改了个名字,这样就不用写空格的转义字符了,改成Subli ...
- 支持无限加载的js图片画廊插件
natural-gallery-js是一款支持无限加载的js图片画廊插件.该js图片画廊支持图片的懒加载,可以对图片进行搜索,分类,还可以以轮播图的方式来展示和切换图片. 使用方法 在页面中引入下面的 ...
- 切换Ubuntu超级管理员
对Ubuntu进行拷贝命令时,如果不是root用户,会出现权限不足的情况,无法操作
- 黑马基础阶段测试题:通过字符输入流读取info.txt中的所有内容,每次读取一行,将每一行的第一个文字截取出来并打印在控制台上。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- 已解决: idea创建并部署SpringMVC项目时 报错 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
用IDEA创建并运行SpringMVC项目时,最初发现没有Servlet包,这个问题已在上篇解决,然而当我们尝试去运行此时的SpringMVC项目时,发现仍然有错误.ClassNotFoundExce ...
- 通过Tcode查找Badi或者客户出口
https://wiki.scn.sap.com/wiki/display/ABAP/Code+To+Find+BAdi Created by Naresh Reddy K, last modifie ...
- linux替换yum源及配置本地源
linux系统安装后自带的bash源由于在国外,安装软件包的时候会非常慢,最好替换一下yum源. 关于yum源的简单介绍 yum的主要功能是更方便地添加,删除和更新rpmba ...