在rss提要中指定频道图像的方法

2024-10-01 17:38:06 发布

您现在位置:Python中文网/ 问答频道 /正文

在rss提要中指定频道图像的“django方式”是什么?我可以通过滚动我自己的xml来手动完成,但我正在寻找一种合适的方法。在

编辑 dobrych的解决方案在这里不太适用,因为我专门询问的是RSS而不是Atom提要


Tags: django方法图像编辑方式xml手动解决方案
3条回答

找到了正确的方法。正如documentation所描述的,我需要通过从Rss201rev2Feed子类化和重写方法来创建一个自定义提要生成器

add_root_elements()

像这样:

^{pr2}$

对于有效的rss2.0,您应该使用以下命令:

class ImageRssFeedGenerator(Rss201rev2Feed):
    def add_root_elements(self, handler):
        super(ImageRssFeedGenerator, self).add_root_elements(handler)
        handler.startElement(u'image', {})
        handler.addQuickElement(u"url", self.feed['image_url'])
        handler.addQuickElement(u"title", self.feed['title'])
        handler.addQuickElement(u"link", self.feed['link'])
        handler.endElement(u'image')

class LastPublishedPromiseFeed(Feed):
    link = 'http://www.example.com'
    feed_type = ImageRssFeedGenerator

    def feed_extra_kwargs(self, obj):
        return {'image_url': self.link + '/image.jpg'}

我建议使用django-atompub来生成原子源。 它有非常好的类抽象,有很多选项,所以没有任何XML黑客攻击,只有高级Python代码。在

示例:

# Define feed class
class StreamFeed(Feed):
    ... [snipped]
    def item_links(self, item):
        return [{'rel': 'enclosure', 'href': item.file.url, 'length': item.file.size, 'type': item.mime.name},
        {'rel': 'alternate', 'href': full_url(item.get_absolute_url())}]

我在我的开源图片博客django应用程序中使用了它。您可以通过bitbucket repo查看示例。在

完成feed generation code。在

相关问题 更多 >

    热门问题