Django Генерация RSS-канала с описанием
Я пытаюсь сгенерировать полный RSS-канал, однако при загрузке канала в Mail он просто показывает заголовок с ссылкой для дополнительной информации внизу. Я пробовал несколько разных вариантов. Но, похоже, никто не работает.
Я хотел бы создать канал с комбинацией нескольких каналов в моем модуле.
Вот код, который я пробовал:
class LatestEvents(Feed):
description_template = "events_description.html"
def title(self):
return "%s Events" % SITE.name
def link(self):
return '/events/'
def items(self):
events = list(Event.objects.all().order_by('-published_date')[:5])
return events
author_name = 'Latest Events'
def item_pubdate(self, item):
return item.published_date
И в моем шаблоне, который хранится в TEMPLATE_ROOT/feeds/
{{ obj.description|safe }}
<h1>Event Location Details</h1>
{{ obj.location|safe }}
Даже если я жестко закодирую описание, оно не работает. Приведенное ниже решение не работает, и тестирование канала в Firefox также не отображает содержимое.
В основном я хочу создать полный канал.
2 ответа
Если кто сталкивался с этим, проблема была в ссылке на шаблон.
т.е. description_template = "events_description.html"
Я предполагал, что django будет обрабатывать проверку каталога шаблонов, однако вы должны указать, где расположен шаблон. т.е.
description_template = "events/events_description.html"
Я так понимаю, что вы пытаетесь подписаться на канал по электронной почте... правильно?
Для этого нужно добавить пару вещей.
Сначала импортируйте расширение "content". Это сделано в начале <rss>
элемент как это:
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
Затем добавьте полное описание к такому элементу:
<content:encoded><![CDATA[
<p>The full description goes here bla bla bla.</p>
<p>You can use HTML tags too.</p>
]]></content:encoded>
Это в дополнение к обычному тегу описания, необходимому для RSS, и может быть добавлено к каждому <item>
элемент.