Author_name 未出现在 Django 联合 rss 提要中
Author_name not showing up in Django syndication rss feed
我有一个基于 Django 的站点。它有一个使用 django syndication framework) 的提要。尽管我在提要的定义中指定了 author_name,但提要本身并没有出现任何作者。作者需要将提要提交到我检查过的所有目录。
我的 feeds.py 看起来像这样:
from django.contrib.syndication.views import Feed
from django.utils.feedgenerator import Rss201rev2Feed
from Audits.models import Audit
from django.urls import reverse
class SubscriptionFeed(Feed):
feed_type = Rss201rev2Feed
title = "Audio feed title"
link = "/listen/"
description = "A description of the audio feed."
author_name = "Example feed author"
author_email = "example@gmail.com"
def items(self):
return Audits.objects.all().filter(published=True).exclude(audio_file='').order_by('-year_integer', '-month_integer')
def item_title(self, item):
return item.title
def item_description(self, item):
return item.abstract
def item_link(self, item):
return reverse('Podcast-Pages', args=[item.pk])
def item_author_name(self, item):
return "Example Item Author"
http://www.rssboard.org/rss-specification 上的 RSS2.0 规范未将 author 列为 feed 的必需属性或可选属性 -- 仅针对项目。
Rss201rev2Feed
的来源也没有实现提要作者,但 Atom1Feed
实现了!
您可以在您的供稿定义中使用 feed_type = Atom1Feed
,或者在您的自定义供稿类型中添加作者属性:
class iTunesFeed(Rss201rev2Feed):
def add_root_elements(self, handler):
super().add_root_elements(handler)
if self.feed['author_name'] is not None:
handler.startElement("author", {})
handler.addQuickElement("name", self.feed['author_name'])
if self.feed['author_email'] is not None:
handler.addQuickElement("email", self.feed['author_email'])
if self.feed['author_link'] is not None:
handler.addQuickElement("uri", self.feed['author_link'])
handler.endElement("author")
我有一个基于 Django 的站点。它有一个使用 django syndication framework) 的提要。尽管我在提要的定义中指定了 author_name,但提要本身并没有出现任何作者。作者需要将提要提交到我检查过的所有目录。
我的 feeds.py 看起来像这样:
from django.contrib.syndication.views import Feed
from django.utils.feedgenerator import Rss201rev2Feed
from Audits.models import Audit
from django.urls import reverse
class SubscriptionFeed(Feed):
feed_type = Rss201rev2Feed
title = "Audio feed title"
link = "/listen/"
description = "A description of the audio feed."
author_name = "Example feed author"
author_email = "example@gmail.com"
def items(self):
return Audits.objects.all().filter(published=True).exclude(audio_file='').order_by('-year_integer', '-month_integer')
def item_title(self, item):
return item.title
def item_description(self, item):
return item.abstract
def item_link(self, item):
return reverse('Podcast-Pages', args=[item.pk])
def item_author_name(self, item):
return "Example Item Author"
http://www.rssboard.org/rss-specification 上的 RSS2.0 规范未将 author 列为 feed 的必需属性或可选属性 -- 仅针对项目。
Rss201rev2Feed
的来源也没有实现提要作者,但 Atom1Feed
实现了!
您可以在您的供稿定义中使用 feed_type = Atom1Feed
,或者在您的自定义供稿类型中添加作者属性:
class iTunesFeed(Rss201rev2Feed):
def add_root_elements(self, handler):
super().add_root_elements(handler)
if self.feed['author_name'] is not None:
handler.startElement("author", {})
handler.addQuickElement("name", self.feed['author_name'])
if self.feed['author_email'] is not None:
handler.addQuickElement("email", self.feed['author_email'])
if self.feed['author_link'] is not None:
handler.addQuickElement("uri", self.feed['author_link'])
handler.endElement("author")