向RSS添加CSS非常简单,如下所示:http://www.petefreitag.com/item/208.cfm
用django创建RSS也很简单,这里有文档:https://docs.djangoproject.com/en/1.3/ref/contrib/syndication/
如何将这两者结合起来?或者更好的是,如何在使用django提供的feed框架时向RSS添加CSS ?
我知道我可以创建我自己的RSS xml文件,但为什么我应该这样做,如果框架工作得很好吗?我只需要一个链接css的方法,我可以使用代码高亮或类似的东西。
在django中提供漂亮的RSS的最佳实践是什么?考虑到这个答案,这可能不值得付出努力,但是我找到了一种方法来做到这一点,这种方法非常难看,但是对于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
我认为这样做的一种方法是创建一个自定义页面视图,并将URL指向该页面视图(修改Django syndication页面的示例):
(r'^beats/(?P<beat_id>d+)/rss/$','yourapp_views_custompageview'),
然后在这个页面视图中,返回<?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.