django联合供稿框架:将CSS添加到RSS

时间:2011-08-16 20:30:38

标签: css django frameworks rss syndication

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

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

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

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

在django中提供漂亮RSS的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

这可能不值得付出努力considering this answer,但我找到了一种方法来做到这一点,这非常难看,但对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

答案 1 :(得分:0)

我认为实现此目的的一种方法是创建自定义页面视图并将URL指向此页面视图(从Django联合页面修改示例):

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

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

我现在没有使用Feed框架,所以我很难测试。请告诉我这是否有效或遇到困难。

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