Django2训练新项目:开发设计本人blog系统软件(

摘要:这篇实例教程大家1起来进行Django2本人blog系统软件检索結果页有关编码的撰写。...

这篇实例教程大家1起来进行Django2本人blog系统软件检索結果页有关编码的撰写。

检索栏作用在模版“sidebar.html”中,在以前的实例教程中大家早已进行。

融合前面的实例教程,大家了解检索的相对路径是“search/”,而且根据“GET”方式,将键入框“key”的值开展传送。

在主视图中,大家就必须依据“key”的值获得检索結果。

那末,大家根据重要词检索时,常常是必须开展模糊不清检索。

这里,大家要完成将题目或內容中包括重要词的文章内容查寻出来。

此外,也有1点必须完成,便是在检索結果页的检索框中要保存重要字。

示例编码:

from django.db.models import Q # 协助进行查寻标准设定

class Search(ListView):

model = Article

template_name = 'search.html'

paginate_by = 5

def get_queryset(self):

key = self.request.GET['key'] # 获得查寻重要字

if key:

return Article.objects.filter(Q(title__icontains=key) | Q(content__icontains=key)).order_by('-id')

# 查寻题目或內容包括重要字的数据信息目标

else:

return None

def get_context_data(self, **kwargs):

context = super().get_context_data(**kwargs)

context['key'] = self.request.GET['key'] # 获得重要字存入传入模版的数据信息中

return context

随后,大家开展URL设定。

示例编码:

path('search/', blog_view.Search.as_view(), name='search'),

最终,界定检索結果网页页面的模版內容。

仍然能够从主页模版拷贝內容开展提升。

提醒:实际上绝大多数同样的网页页面构造,也可独立为这些网页页面建立父级模版,便于降低模版中的编码量。

示例编码:(search.html)

{% extends 'base.html' %}

{% block title %}检索結果{% endblock %}

{% block content %}

<h4> 下列是【{{ key }}】的查寻結果:</h4>

{% for article in object_list %}

<div class="panel panel-default">

<div>

<h3>

<a href="{% url 'detail' article.id %}">{{ article.title }}</a>

</h3>

</div>

<div>

<p>作者:{{ article.author }} 时间:{{ article.pub_time }}</p>

<p>{{ article.content|truncatechars:200|striptags }}</p>

<a href="{% url 'detail' article.id %}">进到阅读文章 </a>

</div>

</div>

{% empty %}

<h4> 沒有查寻結果!</h4>

{% endfor %}

<!--分页查询条-->

{% include 'paginator.html' %}

{% endblock %}

到这里,大家便可以一切正常应用检索作用了。



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:公众号小程序制作