Update feeds.py

hjn_branch
plqo32bax 3 months ago
parent 63a0941d54
commit 5b1e4ddedf

@ -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
Loading…
Cancel
Save