python+Django CRM客户关系管理系统开发--搜索功能开发

Posted realizetomoney

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python+Django CRM客户关系管理系统开发--搜索功能开发相关的知识,希望对你有一定的参考价值。

一、本节目标

上一节完成了排序,以及与过滤,分页的组合,这一节开发搜索功能

 

二、搜索功能分析

admin实现分析:

在admin.py中的admin_class中添加如下命令:

技术图片

 

 

然后就可以在admin中看到搜索功能:

技术图片

 

技术图片

 

 技术图片

 

 

 

三、功能开发

1、我们也在admin_class中添加搜索列:

技术图片

 

 2、在页面上添加搜索框。

技术图片

 

 在页面上查看,可以看到搜索框:

技术图片

 

 

技术图片

 

 此时如果直接点击搜索按钮,会报错,因此,还需要将q添加到关键字中:

技术图片

 

 技术图片

 

 

 

 

3、接下来就在views中写函数,返回搜索后的结果给前端页面:

技术图片

 

 技术图片

 

 

此时发现,查询时报错:

技术图片

 

 经过查询,发现原因为,查询的字段中有foreignkey,因此,作如下修改,加一个__name,即可:

技术图片

 

 

主要原因是因为外键字段,是一个model,我们需要查询的是model的一个name字段,这里先记录,回头整理一下。

 

此时可以查询成功,但是搜索框里不会显示搜索的key。

技术图片

 

 我们首先把搜索的key获取,并返回,修改视图函数:

技术图片

 

 技术图片

 

 技术图片

 

 

4、没有搜索时,搜索框是一个空白,不知道通过什么搜索,我们添加一个placeholder

技术图片

 

 

技术图片

 

 

5、过滤+搜索

目前过滤的同时不能搜索,搜索后不能过滤,现在完善一下:

具体思路还是将url拼接,此处将过滤的url放到搜索里,此时,如果有过滤条件,搜索的时候就会带着过滤条件一起搜索,效果就是从过滤后的内容中搜索

 

此处需要用到一个知识点,添加一个隐藏标签:

技术图片

 

 

当字典中有值时,提交后,得到的结果如图,效果就是将字典中的key与value拼接成url:

技术图片

 

 

此时即实现了搜索与过滤结合

技术图片

 

 

技术图片

 

 

 

6、当搜索条件过多时,还需要将搜索结果分页,这里完善一下

搜索+分页

思路还是url拼接:

技术图片

 

 

 

技术图片

 

以上是关于python+Django CRM客户关系管理系统开发--搜索功能开发的主要内容,如果未能解决你的问题,请参考以下文章

Django CRM客户关系管理系统

Django项目:CRM(客户关系管理系统)--83--73PerfectCRM实现CRM模板统一

Django项目:CRM(客户关系管理系统)--64--54PerfectCRM实现CRM客户报名链接

Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录

Django项目:CRM(客户关系管理系统)--72--62PerfectCRM实现CRM讲师讲课记录

Django项目:CRM(客户关系管理系统)--46--37PerfectCRM实现CRM用户注册