фреймворк для синдикации django: добавление CSS в RSS - PullRequest
0 голосов
/ 17 августа 2011

Добавление CSS в RSS довольно просто, как показано здесь: http://www.petefreitag.com/item/208.cfm

Создание RSS также просто с django, как описано здесь: https://docs.djangoproject.com/en/1.3/ref/contrib/syndication/

Как объединить эти два?Или лучше, как добавить CSS в RSS при использовании фреймворка, предоставленного django?

Я знаю, что могу создать свой собственный XML-файл RSS, но зачем мне это делать, если фреймворк работает нормально?Мне просто нужен способ связать css, чтобы я мог использовать выделение кода или что-то в этом роде.

Каковы наилучшие практики для предоставления красивых RSS в django?

Ответы [ 2 ]

1 голос
/ 03 сентября 2013

Это, вероятно, не стоит усилий, , учитывая этот ответ , но я нашел способ сделать это, что довольно уродливо, но работает с выводом XML.Вышеупомянутое решение не сработало в Django 1.5.

В моем классе Feed я перезаписываю метод call следующим образом:

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
0 голосов
/ 17 августа 2011

Я считаю, что один из способов сделать это - создать пользовательский вид страницы и указать 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.

Я сейчас не использую фид-фреймворк, поэтому мне сложно его протестировать.Пожалуйста, дайте мне знать, если это работает или если у вас возникли трудности.

Вы также можете посмотреть: https://code.djangoproject.com/browser/django/trunk/django/utils/feedgenerator.py.

...