首页 文章

Django生成带有描述的RSS提要

提问于
浏览
1

我正在尝试生成一个完整的RSS源,但是当在Mail中加载Feed时,它只显示 Headers ,并在底部显示更多链接 . 我尝试了几种不同的选择 . 但似乎都没有效果 .

我想在我的modl中使用几个feed的组合生成feed .

这是我试过的代码:

class LatestEvents(Feed):
    description_template = "events_description.html"

    def title(self):
        return "%s Events" % SITE.name

    def link(self):
        return '/events/'

    def items(self):
        events = list(Event.objects.all().order_by('-published_date')[:5])
        return events

    author_name = 'Latest Events'

    def item_pubdate(self, item):
        return item.published_date

在我的模板中存储在TEMPLATE_ROOT / feeds /中

{{ obj.description|safe }}
<h1>Event Location Details</h1>
{{ obj.location|safe }}

即使我硬编码描述它也不起作用 . 下面的解决方案不起作用,在Firefox中测试Feed也不显示内容 .

基本上我想创建一个完整的feed .

2 回答

  • 2

    如果有人遇到这个,问题是模板的链接 .

    即description_template =“events_description.html”

    我假设django会处理检查模板目录,但是你必须指定模板的位置 . 即

    description_template =“events / events_description.html”

  • 0

    我认为你试图通过电子邮件订阅Feed ...对吗?

    要做到这一点,你需要添加一些东西 .

    首先,导入"content"扩展名 . 这是在打开 <rss> 元素中完成的,如下所示:

    <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    

    然后,将完整的desription添加到这样的元素:

    <content:encoded><![CDATA[
      <p>The full description goes here bla bla bla.</p> 
      <p>You can use HTML tags too.</p>
    ]]></content:encoded>
    

    这是RSS所需的常规描述标记 in addition ,可以添加到每个 <item> 元素 .

相关问题