您的位置:首页 > 编程语言 > Python开发

python Django 页面全局搜索功能实现

2018-09-01 21:05 393 查看


思路:
1页面JS实现,获取内容id 和 搜索id

<div class="wp">
<a href="index.html"><img class="fl" src="/static/images/logo1.png"/></a>
<div class="searchbox fr">
<div class="selectContainer fl">

<span class="selectOption" id="jsSelectOption" data-value="course">
公开课
</span>
<ul class="selectMenu" id="jsSelectMenu">
<li data-value="course">公开课</li>
<li data-value="org">课程机构</li>
<li data-value="teacher">授课老师</li>
</ul>
</div>

<input id="search_keywords" class="fl" type="text" value="" placeholder="请输入搜索内容"/>
<img class="search_btn fr" id="jsSearchBtn" src="/static/images/search_btn.png"/>
</div>

2然后进行所选搜索条件的判断,分条件生成 对应的 路由路径

<script>
$(function () {
$('#jsSearchBtn').click(function () {
var searchcontent=$('#search_keywords').val();
var search_type=$('#jsSelectOption').attr('data-value');
url='';
if(search_type == 'course'){
url = '{% url 'courses:course_list' %}';
}else if(search_type == 'org'){
url = '{% url 'org:org_list' %}';
}else{
url = '{% url 'org:teacher_list' %}';
}
url=url+'?keyw='+searchcontent;
window.location.href=url;
})
})
</script>

3然后 通过 内容id获取到 搜索内容 进行 路径传参,把搜索内容传到对应的 路由视图

def teacher_list(request):
tea_list = TeacherInfo.objects.all()
sort_teacher = tea_list.order_by('-love_num')[:6]
sortby = request.GET.get('sortby', '')
if sortby:
tea_list = tea_list.order_by('-love_num')

pagenum = request.GET.get('pagenum', '')
pa = Paginator(tea_list, 4)
try:
pages = pa.page(pagenum)
except PageNotAnInteger:
pages = pa.page(1)
except EmptyPage:
pages = pa.page(pa.num_pages)
is_teacher = True

keyw = request.GET.get('keyw', '')
if keyw:
pages=TeacherInfo.objects.filter(name__icontains=keyw)

return render(request, 'teachers/teachers-list.html', {
'tea_list': tea_list,
'sort_teacher': sort_teacher,
'sortby': sortby,
'pages': pages,
'is_teacher': is_teacher
})

4然后进行判断 和 过滤

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐