From 5b1e4ddedf461ff700b9c614df9e4ad7bd9be7e6 Mon Sep 17 00:00:00 2001 From: plqo32bax <3547574347@qq.com> Date: Sun, 9 Nov 2025 23:56:47 +0800 Subject: [PATCH] Update feeds.py --- .../DjangoBlog-master/djangoblog/feeds.py | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/DjangoBlog-master/DjangoBlog-master/djangoblog/feeds.py b/src/DjangoBlog-master/DjangoBlog-master/djangoblog/feeds.py index 8c4e851..6f164c8 100644 --- a/src/DjangoBlog-master/DjangoBlog-master/djangoblog/feeds.py +++ b/src/DjangoBlog-master/DjangoBlog-master/djangoblog/feeds.py @@ -1,40 +1,51 @@ +# 导入用户模型、RSS订阅核心类等依赖 from django.contrib.auth import get_user_model -from django.contrib.syndication.views import Feed -from django.utils import timezone -from django.utils.feedgenerator import Rss201rev2Feed +from django.contrib.syndication.views import Feed # Django RSS订阅基础类 +from django.utils import timezone # 时间处理工具 +from django.utils.feedgenerator import Rss201rev2Feed # RSS2.0格式生成器 +# 导入博客文章模型和Markdown转换工具 from blog.models import Article from djangoblog.utils import CommonMarkdown +# 自定义博客RSS订阅类,继承Django的Feed基类 class DjangoBlogFeed(Feed): - feed_type = Rss201rev2Feed + feed_type = Rss201rev2Feed # 指定订阅源格式为RSS2.0 - description = '大巧无工,重剑无锋.' - title = "且听风吟 大巧无工,重剑无锋. " - link = "/feed/" + description = '大巧无工,重剑无锋.' # 订阅源描述 + title = "且听风吟 大巧无工,重剑无锋. " # 订阅源标题 + link = "/feed/" # 订阅源的链接地址 + # 订阅源作者名称,取第一个用户的昵称 def author_name(self): return get_user_model().objects.first().nickname + # 订阅源作者的链接,取第一个用户的个人页面地址 def author_link(self): return get_user_model().objects.first().get_absolute_url() + # 订阅源的内容项:获取5篇已发布的文章,按发布时间倒序 def items(self): return Article.objects.filter(type='a', status='p').order_by('-pub_time')[:5] + # 单个内容项的标题(对应文章标题) def item_title(self, item): return item.title + # 单个内容项的描述,将文章正文Markdown格式转为HTML def item_description(self, item): return CommonMarkdown.get_markdown(item.body) + # 订阅源的版权信息,动态显示当前年份 def feed_copyright(self): now = timezone.now() return "Copyright© {year} 且听风吟".format(year=now.year) + # 单个内容项的链接(对应文章详情页地址) def item_link(self, item): return item.get_absolute_url() + # 单个内容项的唯一标识(此处未实现,可补充文章ID等作为标识) def item_guid(self, item): - return + return \ No newline at end of file