当前位置: 首页 > news >正文

Django文章标签推荐

当博客文章实现了标签后,可以用它们做很多有趣的事情。关于标签的更多内容,请看

Django集成第三方标签功能-CSDN博客

使用标签,我们可以很好地对博客文章进行分类。类似主题的帖子会有几个共同的标签。下一步将构建一个功能,以显示类似的帖子的标签数量。当用户阅读一篇文章时,我们可以建议他们阅读其他标签相同的文章。

为了检索特定职位的类似职位,需要执行以下步骤:、

检索当前文章的所有标签

blog/views.py

from django.db.models import Count


📌这是Django ORM的Count聚合函数。这个函数将允许执行标记的聚合计数。
Django.db.models包含以下聚合函数:

  • Avg:平均值  
  • Max:最大值  
  • Min:最小值  
  • Count:对象计数

关于聚合函数,可查看官方文档

https://docs.djangoproject.com/zh-hans/5.0/topics/db/aggregation/

在render()函数之前的post_detail视图中添加以下行:

post_tags_ids = post.tags.values_list('id', flat=True)

例如当前文章有两个标签 {id:1,value:'python'}{id:2,value:'django'},使用tags.values_list获取标签的id列表,返回一个元组(1,2)

📌将flat=True传递给它以获得像[1,2,3,…]这样的扁平列表。

获取所有贴有这些标签的帖子  
从列表中排除当前的帖子,以避免推荐相同的帖子 

similar_posts = Post.published.filter(tags__in=post_tags_ids).exclude(id=post.id)

关于Post.published是在模型中自定义的一个返回已发布信息的方法,更多内容请查看

Django定制模型管理器-CSDN博客

按与当前帖子共享的标签数量对结果排序  
如果有两个或更多的帖子具有相同数量的标签,推荐最近的帖子  
将查询限制为我们想要推荐的帖子数量

similar_posts = similar_posts.annotate(same_tags=Count('tags')).order_by('-same_tags','-publish')[:4]

将similar_posts对象添加到render()函数的上下文字典中

    template = "blog/post/detail.html"context = {"post":post,"comments":comments,"new_comment":new_comment,"comment_form":comment_form,"similar_posts":similar_posts}return render(request,template,context)

关于comment功能,请查看Django评论系统-CSDN博客

编辑blog/post/detail.html模板,并在帖子评论列表之前添加以下代码

    {% for post in similar_posts %}<p><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></p>{% empty %}There are no similar posts yeet.{% endfor %}

关于get_absolute_url是在模型中自定义的使用日期为路径的方法,更多内容请看

Django用日期URL定位详情-CSDN博客

相关文章:

Django文章标签推荐

当博客文章实现了标签后&#xff0c;可以用它们做很多有趣的事情。关于标签的更多内容&#xff0c;请看 Django集成第三方标签功能-CSDN博客 使用标签&#xff0c;我们可以很好地对博客文章进行分类。类似主题的帖子会有几个共同的标签。下一步将构建一个功能&#xff0c;以显…...

Git、TortoiseGit进阶

1.安装Git、TortoiseGit和汉化包 Git官网: Git TortoiseGit和汉化包: Download – TortoiseGit – Windows Shell Interface to Git 2.常用命令 创建仓库命令 git init初始化仓库git clone拷贝一份远程仓库,也就是下载一个项目。提交与修改 git add添加文件到暂存区git…...

山区老人爱的礼物丨守护银龄,情暖寒冬

为让山区老人们在寒冷的冬天感受到来自社会的温暖&#xff0c;新年伊始&#xff0c;北京传益千里携手志愿者再次走进酉阳土家族苗族自治县木叶乡分发新的一轮山区老人爱的礼物&#xff0c;让更多的物资走向有需要的人群。 中午阳光正好&#xff0c;志愿者们走进山林中的人家&am…...

【计算机算法设计与分析】n皇后问题(C++_回溯法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在nxn格的棋盘上放置彼此不受攻击的n格皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于在nxn格的棋盘上放置n个皇后&#xff0c;任何2个皇后不放在同…...

Calendar日历类型常见方法

Calendar日历类型常见方法&#xff1a; 概括&#xff1a;1.get( )方法2、set( ) 设置时间3、常用的add方法4、after()方法表示的时间是否在指定时间之后&#xff0c; before( ) 方法则之前&#xff0c; 返回判断结果4.1、compareTo比较器 概括&#xff1a; Calendar类是一个抽…...

Docker-Compose部署Redis(v7.2)主从模式

文章目录 一、前提准备1. redis配置文件2. 下载redis镜像3. 文件夹结构 二、docker-compose三、主从配置1.主节点配置文件2.从节点配置文件 四、运行五、测试 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. redis配置文件 因为Redis 7.2 docker镜像里面…...

Spring国际化的应用及原理详解

1. 简介 Spring国际化&#xff08;Spring Internationalization&#xff0c;简称i18n&#xff09;是Spring框架提供的一种机制&#xff0c;用于支持多语言的应用程序。它使得开发者能够轻松地在应用程序中实现不同语言的支持&#xff0c;从而满足全球化的需求。通过Spring国际…...

Existing installation is up to date

这个报错是之前安装的docker没有删除干净 解决方法&#xff1a; 打开注册表编辑器 然后再搜索栏&#xff1a;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Docker Desktop 回车 找到Docker Desktop文件夹后&#xff0c;右键删除 重新安装Docker…...

windows安装kafka以及kafka管理工具推荐

windows安装 1.下载地址 下载地址 下载最新版本的.tgz文件解压 2.修改配置 修改config目录下的zookeeper.properties中的dataDir属性 server.properties文件中的log.dir属性 3.启动zookeeper 进入到bin\windows\下的用cmd输入zookeeper-server-start.bat ..\..\config\zo…...

面向对象的三大特征之一多态

多态 概念 多态是同一个对象&#xff0c;在不同时刻表现出来不同的形态&#xff0c;称之为多态。 例如&#xff1a;水&#xff0c;我们把水理解成为一个对象&#xff0c;而水会有不同的形态&#xff0c;比如 液态水、冰块、水蒸气 多态的前提 有继承/实现关系&#xff08;继承…...

vue3中标签form插件

想写一个系统&#xff0c;对八字进行标注&#xff0c;比如格局&#xff0c;有些八字就有很多格局&#xff0c;于是就想着使用el-tag但是&#xff0c;form表单中如何处理呢&#xff1f; 这个时候&#xff0c;就需要自己写一个,modelValue是表单的默认属性 <template><…...

企业数字化转型:1个核心、2种力量、3个关键点、4大转型、5大平台

引言 企业数字化转型源于当今数字化时代的巨大变革。随着科技的飞速发展和全球市场的日益竞争&#xff0c;企业们正面临着前所未有的挑战和机遇。这些挑战包括消费者行为的变化、新技术的涌现以及市场竞争的加剧。在这种环境下&#xff0c;传统的商业模式和运营方式已经不再适…...

Agilent安捷伦E4990A阻抗分析仪20Hz

Agilent安捷伦E4990A阻抗分析仪性能卓越&#xff0c;适用于元器件、半导体和材料测量。它具有宽广的频率范围&#xff0c;从20Hz到120MHz&#xff0c;能够适应各种不同的阻抗测量需求。在宽阻抗范围内&#xff0c;该仪器能够提供出色的0.045%&#xff08;典型值&#xff09;基本…...

性能优化-OpenMP概述(一)-宏观全面理解OpenMP

本文旨在从宏观角度来介绍OpenMP的原理、编程模型、以及在各个领域的应用、使用、希望读者能够从本文整体上了解OpenMP。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础…...

Prometheus实战篇:Prometheus监控nginx

准备环境 在此专栏的前几篇文章中已经准备了一台服务器作为我们进行环境的准备.大家也可以通过虚拟机创建俩台服务器,一台作为Prometheus的安装另外一台进行其他软件安装并且进行监控的服务器. 这里我就不赘述nginx的安装教程,相信大家都可以搜到,使用docker或者直接通过安装包…...

JVM加载class文件的原理机制

1、JVM 简介 JVM 是我们Javaer 的最基本功底了&#xff0c;刚开始学Java 的时候&#xff0c;一般都是从“Hello World ”开始的&#xff0c;然后会写个复杂点class &#xff0c;然后再找一些开源框架&#xff0c;比如Spring &#xff0c;Hibernate 等等&#xff0c;再然后就开发…...

如何使用CapSolver解决Web爬虫中遇到的CAPTCHA问题

Web爬取是一种强大的技术&#xff0c;用于从网站中提取数据&#xff0c;但经常会遇到一个常见障碍&#xff0c;即CAPTCHA。CAPTCHA是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写&#xff0c;旨在防止自动机器人访问网站。然而&…...

杰发科技AC7801——IO模拟IIC注意事项

7801的参考手册没有说清楚 7840说明了用开漏 使用办法...

展台搭建与设计都有哪些思路

1、现代简约 设计理念强调简洁、线条清晰和空间布局&#xff0c;突出产品本身&#xff0c;使展台干净整洁&#xff0c;适合展示高科技、现代化的产品。 2、自然生态 利用植物、木材等自然元素&#xff0c;营造与自然和谐共处的氛围&#xff0c;适合健康、环保、生态产品。 3、品…...

解决mock单元测试中 无法获取实体类xxx对应的表名

错误描述&#xff1a;在执行单元测试时&#xff0c;执行到new Example时抛出异常&#xff0c;提示无法获取实体类xxx对应的表名 Example example new Example(ServeSubscribeRecord.class);Example.Criteria criteria example.createCriteria();criteria.andEqualTo("se…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...