0

将 CSS 添加到 RSS 非常简单,如下所示:http ://www.petefreitag.com/item/208.cfm

使用 django 创建 RSS 也很简单,如下所示:https ://docs.djangoproject.com/en/1.3/ref/contrib/syndication/

如何将这两者结合起来?或者更好的是,如何在使用 django 提供的提要框架时将 CSS 添加到 RSS?

我知道我可以创建自己的 RSS xml 文件,但是如果框架工作得很好,我为什么要这样做呢?我只需要一种链接css的方法,我可以使用代码突出显示或类似的东西。

在 django 中提供漂亮的 RSS 的最佳实践是什么?

4

2 回答 2

2

考虑到这个答案,这可能不值得付出努力,但我找到了一种方法,这很丑陋,但对 XML 输出有效。上面的解决方案在 Django 1.5 中不起作用。

在我的 Feed 类中,我像这样覆盖调用方法:

from django.contrib.syndication.views import Feed

class MyFeed(Feed)

    def __call__(self, request, *args, **kwargs):
        response = super(MyFeed, self).__call__(request, *args, **kwargs)

        # Add stylesheet, is it worth it?
        css = '<?xml-stylesheet type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" ?>\n'
        start = '<rss xmlns:atom'
        response.content = response.content.replace(start, css + start)

        return response
于 2013-09-02T21:15:08.607 回答
0

我相信做到这一点的一种方法是创建一个自定义页面视图并将 URL 指向该页面视图(修改 Django 联合页面中的示例):

(r'^beats/(?P<beat_id>\d+)/rss/$','yourapp_views_custompageview'),

然后在此页面视图中, return <?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?> + BeatFeed(),其中 BeatFeed 是您的 FeedClass。

我现在没有使用提要框架,所以我很难测试。请让我知道这是否有效或您是否遇到困难。

您可能还想查看:https ://code.djangoproject.com/browser/django/trunk/django/utils/feedgenerator.py 。

于 2011-08-16T22:52:55.633 回答