首页 > 其他分享 >侧边栏筛选功能的实现

侧边栏筛选功能的实现

时间:2023-05-11 12:11:23浏览次数:48  
标签:category 功能 list param 侧边 article 筛选 condition

目录

一、分析博客园

"""
按照标签筛选
https://www.cnblogs.com/wupeiqi/tag/1/
按照分类筛选
https://www.cnblogs.com/wupeiqi/category/1/
按照时间筛选
https://www.cnblogs.com/wupeiqi/archive/2020-11/
"""

二、路由层的编写

    # 侧边栏搜素功能
    # ?wupeiqi/tag/1
    # url(r'^(?P<username>\w+)/tag/(\d+)$', views.site),
    # url(r'^(?P<username>\w+)/category/(\d+)$', views.site),
    # url(r'^(?P<username>\w+)/archive/(\w+)$', views.site),
    
    # 优化
    re_path('^(?P<username>\w+)/(?P<condition>tag|category|archive)/(?P<param>.*)', views.site),

三、视图函数逻辑的实现

由于不知道具体传几个参数,所以用**kwargs接收
image

   if kwargs:
        # 代表筛选
        # {'condition': 'tag', 'param': '1'}
        # {'condition': 'category', 'param': '1'}
        # {'condition': 'archive', 'param': '2020-11'}
        print(kwargs)
        condition = kwargs.get('condition')
        param = kwargs.get('param')
        if condition == 'category':
            # 按照分类id进一步做筛选,筛选文章
            article_list = article_list.filter(category__pk=param)

        elif condition == 'tag':
            # 跨表查询了  正向查询 查找的字段名小写
            article_list = article_list.filter(tags__pk=param)
        else:
            year, month = param.split('-')    # 2020-11  [2020, 11]
            article_list = article_list.filter(create_time__year=year,
                                               create_time__month=month)

四、给a超链接加地址

 <a href="/{{ username }}/category/{{ cate.2 }}">{{ cate.0 }}({{ cate.1 }})</a>
  <a href="/{{ username }}/tag/{{ tag.2 }}">{{ tag.0 }}({{ tag.1 }})</a>
  <a href="/{{ username}}/archive/{{date.month|date:'Y-m' }}">{{ date.month|date:'Y-m' }}({{ date.c }})</a>

标签:category,功能,list,param,侧边,article,筛选,condition
From: https://www.cnblogs.com/yuezongke/p/17390679.html

相关文章

  • 如何将网页中的目录完美地浮动在主要内容的侧边距中
    诸安,我是之于言者。去年我在编写戴森球计划wiki时遇到一个需求:将文档流中的目录提取出来,使之固定在屏幕左侧。简而言之,就是将这样的网页:转化成这样的网页:原来的网页源代码可以简写成这个样子:<!DOCUMENThtml><html><head> <style> :root{ --border--:1pxsolidrg......
  • BBS首页的搭建之导航条and修改密码功能的实现
    目录一、导航条的搭建html页面二、修改密码功能的实现html页面搭建修改密码后端逻辑实现1.session登录装饰器的验证2.阻止事件二次提交,主要针对bottom按钮在form表单中,又绑定了Ajax提交:3.视图函数功能逻辑的实现4.js前端页面的实现三、退出登录功能的实现1.视图函数一、导航条的......
  • 开源单用户客服系统源码-上传附件功能-elementui 异步上传文件【唯一客服开发商】
    之前开源的单用户客服系统,上传附件成功后,还不能展示出文件形式,今天把上传展示出文件形式给开发完善一下。我想要实现的效果是,展示出文件的名称和大小信息后端返回一个带有文件信息的json结果,前端把该信息组织一下并解析成可以展示的样子后端golang部分代码funcUploadFile(c......
  • ArcGIS软件是干什么的?地理信息分析软件ArcGIS下载安装功能使用
    ArcGIS是一个强大的地理信息系统软件,它可以用于地图制作、数据管理和空间分析等多个领域。而在这些领域中,ArcGIS具有许多独特的功能,可以帮助用户快速准确地进行地理信息数据处理和分析。在本文中,我们将主要介绍ArcGIS的三个独特功能:三维建模、空间插值和数据驱动页面,并通过实际案例......
  • FreeSWITCH部署与功能配置
    一.FreeSWITCH服务部署1.wgethttp://www.freeswitch.org.cn/Makefile&&makeinstall2.cdfreeswitch3.运行./bootstrap.sh(作用:初始化环境)4.执行./configure(主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代......
  • 时间管理APP开发功能
    时间管理APP开发功能包括以下几个方面:任务管理:APP应该具有任务管理功能,用户可以创建任务、添加任务、修改任务、删除任务等。时间设置:APP应该具有时间设置功能,用户可以设置任务的开始时间、结束时间、持续时间等。提醒功能:APP应该具有提醒功能,用户可以设置提醒时间、提醒......
  • 工程监测NLM5无线中继采集发送仪 指示灯功能说明及接口定义
    工程监测NLM5无线中继采集发送仪指示灯功能说明及接口定义 指示灯功能说明标识名称状态描述说明备注说明CHG正在充电常亮正在充电DON充电完成常亮已充满POW电源指示常亮外部电源已连接仅用于指示是否连接了外部电源熄灭无外部电源SIG空RUN运行状态闪烁正......
  • 实现一个js平滑滚动到顶部的小功能
    //平滑滚动到顶部// scrollDom出现滚动条,要滚动的元素//speed平滑滚动的速度number类型const scrollToTopSmooth =(scrollDom, speed) => {  let scrollTop = scrollDom.scrollTop  function move(){    scrollTop -= speed    scrollDom.s......
  • 【音频频率筛选电路LTSpice仿真模型】 涉及到高通低通Sallen-Key滤
    【音频频率筛选电路LTSpice仿真模型】涉及到高通低通Sallen-Key滤波器,DABP滤波器,具有较高的参考价值ID:3168654721676077......
  • 入门1-pytest测试框架功能及常用第三方插件介绍
    安装1. 安装Python2. 安装pytest: pipinstall-Upytest3. 安装常用插件pipinstall-rrequirement.txtPS: 常用插件:pytestallure-pytestrequestsPyYAMLpandasopenpyxljsonpathrequests_toolbeltPrettyTablepytest-htmlpytest-xdist https://docs.py......