2011-08-16 30 views
0

添加CSS到RSS是非常简单,如图中的位置:http://www.petefreitag.com/item/208.cfmDjango的联合供稿框架:添加CSS的RSS

创建RSS是太在这里记录的Django简单:https://docs.djangoproject.com/en/1.3/ref/contrib/syndication/

如何组合这些二?或者更好,如何在使用django提供的feed框架的同时向CSS添加CSS?

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

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

回答

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

+0

这看起来像是一个黑客...哦,没有很多选择从。 – JackLeo

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