07 django管理系统 - 部门管理 - 搜索部门

在dept_list.html中,添加搜索框
    <div class="container-fluid"><div style="margin-bottom: 10px" class="clearfix"><div class="panel panel-default"><!-- Default panel contents --><div class="panel-heading"><a class="btn btn-primary" href="/dept/add/" role="button">添加部门</a><!--因为涉及到提交以及数据路径拼接,所以需要一个form表单,method为get--><div style="float: right"><form class="form-inline" action="/dept/search/" method="get"><!--添加搜索框--><!--name=q 非常的重要--><input type="text" class="form-control" name="q" placeholder="请输入要搜索的部门"aria-label="Recipient's username" aria-describedby="button-addon2"><button class="btn btn-outline-secondary" type="submit" id="button-addon2">搜索</button></form></div></div><div class="panel-body"><div style="float: left"><p>部门列表</p></div><!-- Table --><table class="table"><thead><tr><th>ID</th><th>name</th><th>head</th><th>phone</th><th>email</th><th>address</th><th>操作</th></tr></thead><tbody>{% for obj in queryset %}<tr><td>{{ obj.id }}</td><td>{{ obj.name }}</td><td>{{ obj.head }}</td><td>{{ obj.phone }}</td><td>{{ obj.email }}</td><td>{{ obj.address }}</td><td><a class="btn btn-success" href="/dept/{{ obj.id }}/edit_detail/"role="button">编辑部门</a><a class="btn btn-danger" href="/dept/{{ obj.id }}/delete/" role="button">删除部门</a></td></tr>{% endfor %}</tbody></table>{% if error %}<div style="color: red;">{{ error }}</div>{% endif %}</div></div></div></div>

效果如下:

 通过action="/dept/search/",我们需要配置URL

urlpatterns = [# 部门管理path("dept/list/", dept.dept_list),path("dept/add/", dept.dept_add),path("dept/<int:nid>/edit_detail/", dept.dept_editdetail),path("dept/<int:nid>/delete/", dept.dept_delete),path("dept/search/", dept.dept_search),]

接着去定义函数dept_search()的业务逻辑

def dept_search(request):"""实现部门搜索功能的视图函数。此函数根据用户提交的搜索关键字,查询并返回匹配的部门列表。如果没有提供关键字,则返回所有部门的列表。参数:- request: HttpRequest对象,包含了请求的所有数据。返回:- 渲染后的'dept_list.html'模板,包含搜索结果或错误信息。"""data_dict = {}  # 首先定义一个空的字典keyvalue = request.GET.get("q")  # 取到关键字print("keyvalue", keyvalue)if keyvalue:data_dict["name__contains"] = keyvalueprint("data_dict", data_dict)res = models.Dept.objects.using("default").filter(**data_dict)print("res", res)if not res.exists():# 返回错误信息print("未找到匹配的部门,请输入正确的部门名称")return render(request, 'dept_list.html', {"error": "未找到匹配的部门,请输入正确的部门名称"})queryset = res.order_by("-id")print("queryset", queryset)return render(request, 'dept_list.html', {"queryset": queryset})

我们尝试搜索一下:

1)我搜索正确的部门,比如我搜2病区,注意看调试情况

 我们可以看到访问的具体情况,看红框

2) 假设我搜索空的

报错了,我们可以尝试修改代码

因为q没有默认值,这种没传值的情况下,我们直接显示全部列

"""搜索部门"""def dept_search(request):"""实现部门搜索功能的视图函数。此函数根据用户提交的搜索关键字,查询并返回匹配的部门列表。如果没有提供关键字,则返回所有部门的列表。参数:- request: HttpRequest对象,包含了请求的所有数据。返回:- 渲染后的'dept_list.html'模板,包含搜索结果或错误信息。"""data_dict = {}  # 首先定义一个空的字典keyvalue = request.GET.get("q")  # 取到关键字print("keyvalue....", keyvalue)if keyvalue:data_dict["name__contains"] = keyvalueprint("data_dict", data_dict)res = models.Dept.objects.using("default").filter(**data_dict)print("res", res)if not res.exists():# 返回错误信息print("未找到匹配的部门,请输入正确的部门名称")return render(request, 'dept_list.html', {"error": "未找到匹配的部门,请输入正确的部门名称"})queryset = res.order_by("-id")print("queryset", queryset)return render(request, 'dept_list.html', {"queryset": queryset})# 如果考虑的全面一点,如果q没被传值,则查询全部if keyvalue == "":res = models.Dept.objects.using("default").all()print("qis'',res is..", res)context = {'queryset': res}queryset = res.order_by("-id")print("queryset", queryset)return render(request, 'dept_list.html', {"queryset": queryset})

注意下调试的情况

可以看到输入为空的时候,也是可以查询到数据的

3)输入错误信息,即非部门信息,进行搜索

这样,搜索的功能,我们就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 其他类型 渐进式遍历

我们之前已经学过了Redis最常用的五个类型了&#xff0c;然而Redis还有一些在特定场景下比较好用的类型 Redis最关键的五个数据类型&#xff1a; 上面的类型是非常常用&#xff0c;很重要的类型。 除此之外的其他类型不常用&#xff0c;只是在特定的场景能够发挥用处&#…

无极低码课程【java(jdk)windows下安装及环境变量配置】

在Windows环境中安装JDK 7教程 Java Development Kit (JDK) 是开发Java应用程序所必需的工具包。本教程将指导您在Windows操作系统上安装JDK 7。 准备工作 下载JDK 7安装包 访问 Oracle官方网站 下载JDK 8的安装包。选择适合您操作系统的安装包(例如 jdk-7u80-windows-x64.ex…

vmware虚拟机 报错:客户机操作系统已禁用 CPU,请关闭或重置虚拟机 的解决方法

打开cpu虚拟化全部进行勾选 ctrl e 进行关机 勾选上打开就好了 如果没有那个选项 关机>打开虚拟机>管理>更改硬件兼容性> 往小处改改> >更改此虚拟机

[LeetCode] 515. 在每个树行中找最大值

题目描述&#xff1a; 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2&#xff1a; 输入: root [1,2,3] 输出: [1,3]提示&#xff1a; 二叉树的节点个数的范围是 [0,10…

基于SpringBoot的个性化健康建议平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理基于智能推荐的卫生健康系统的相关信息成为…

OpenTrans

比较的方法Cat-Seg不好复现

Spring 实现 3 种异步流式接口,干掉接口超时烦恼

大家好&#xff0c;我是小富&#xff5e; 如何处理比较耗时的接口&#xff1f; 这题我熟&#xff0c;直接上异步接口&#xff0c;使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性&#xff0c;处理结果仅返回单个值。在某…

幸运7游戏模拟 python

题目&#xff1a; 幸运"7"游戏,用计算机模拟掷骰子的过程&#xff0c;测算两个骰子点数之和为7的概率。 游戏规则是你丢两个骰子&#xff0c;如果其点数之和为7你就赢4元&#xff0c;不是7你就输1元。 假设你刚开始有10元&#xff0c;当全部输掉为0元的时候游戏结…

【网络安全】1,600$:Auth0 错误配置

未经许可,不得转载。 文章目录 前言正文漏洞案例修复建议前言 Auth0 是一个广泛用于网站和应用程序的身份验证平台,负责管理用户身份并确保其服务的安全访问。该平台提供了多种工作流程,以无缝集成登录和注册流程。 在 Auth0 中创建新应用时,注册选项默认启用。当系统禁用…

Android 无Bug版 多语言设计方案!

出海业务为什么要做多语言&#xff1f; 1.市场扩大与本地化需求&#xff1a; 通过支持多种语言&#xff0c;出海项目可以触及更广泛的国际用户群体&#xff0c;进而扩大其市场份额。 本地化是吸引国际用户的重要策略之一&#xff0c;而语言本地化是其中的核心。使用用户的母语…

c语言字符函数

1&#xff0c;字符分类函数&#xff1a; 例如&#xff1a;写一个代码将字符串中的小写字母转化成大写字母 就可以用到上述islower函数判断字符是否是小写 2.字符转换函数 c语言提供了两个字符转换函数 1.int tolower (int c); //将输入进去的大写字母转化成小写 2,int …

IRP默认最小流程

IRP是Windows内核中的一种非常重要的数据结构。上层应用程序与底层驱动程序通信时&#xff0c;应用程序会发出I/O请求&#xff0c;操作系统将相应的I/O请求转换成相应的IRP&#xff0c;不同的IRP会根据类型被分派到不同的派遣例程中进行处理。 irp相当于R3下的消息&#xff0c…

rtsp协议:rtsp协议参数介绍

目的&#xff1a; 实时流协议&#xff08;RTSP&#xff09;用于建立和控制单个或多个时间同步的连续媒体流&#xff0c;例如音频和视频。RTSP 通常不负责实际传输这些连续的媒体流&#xff0c;但可以将连续媒体流与控制流进行交错传输&#xff08;参见第 10.12 节&#xff09;。…

学习Redisson实现分布式锁

官网&#xff1a;https://redisson.org/ 官方文档&#xff1a;https://redisson.org/docs/getting-started/ 官方中文文档&#xff1a;https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 1、引入依赖 <!--redisson--> <dependency><groupId>or…

金融大数据平台总体技术

目录 金融大数据平台应用场景风险管理 场景描述解决方案​​​​​​​市场营销 ​​​​​​​场景描述解决方案​​​​​​​金融大数据信息价值链​​​​​​​金融大数据平台总体目标金融大数据平台功能技术要求​​​​​​​ ​​​​​​​概述数据接入功能要求 ​​…

吐槽kotlin之垃圾设计

本文重点在于吐槽垃圾设计&#xff0c;基本直只说缺点。 一.没有static关键字 static其实不是很面向对象&#xff0c;但是是很有必要和方便的。 kotlin为了实现java的static功能&#xff0c;必须使用伴生类&#xff0c;一般情况下没啥问题&#xff0c;但是反编译之后的class多…

Github学生包的JetBrains认证过期/idea认证过期如何解决?

官网通过Github更新状态即可JetBrains Account 注意要到邮箱走流程

SQL Server LocalDB 表数据中文乱码问题

--查看数据库设置 SELECT name, collation_name FROM sys.databases;--出现了The database could not be exclusively locked to perform the operation这个错误&#xff0c; --无法修改字符集为Chinese_PRC_CI_AS&#xff1b;所以需要先设置为单用户模式 ALTER DATABASE MySma…

初试PostgreSQL数据库

文章目录 一、PostgreSQL数据库概述1.1 PostgreSQL的历史1.2 PostgreSQL安装1.3 安装PostgreSQL二、PostgreSQL起步2.1 连接数据库2.1.1 SQL Shell2.1.2 执行SQL语句2.2 pgAdmin 42.2.1 打开pgAdmin 42.2.2 查找数据库2.2.3 打开查询工具2.2.4 执行SQL语句三、实战小结文章目录…

大一计算机课程之线性代数

《大一计算机课程之线性代数》 在大一的计算机课程中&#xff0c;线性代数是一门极为重要的基础学科&#xff0c;它就像一把神奇的钥匙&#xff0c;为计算机科学领域的诸多方面开启了智慧之门。 线性代数主要研究线性方程组、向量空间、线性变换等内容。对于计算机专业的学生…