RSS-Feed für die Events

Wir wollen einen RSS-Feed für die Events erstellen. Django wird mit einem integrierten Framework zur Generierung von Syndication-Feeds geliefert, das zum Generieren dynamischer Atom- und RSS-Feeds verwendet wird.

RSS

RSS ist eine Abkürzung für Really Simple Syndication, es ist eine Möglichkeit, Informationen an Sie geliefert zu bekommen, anstatt sie suchen zu müssen. RSS ist im Grunde ein strukturiertes XML-Dokument, das vollständigen oder zusammengefassten Text zusammen mit anderen Metadaten wie Veröffentlichungsdatum, Autorenname usw. enthält.

der RSS-Standard definiert Feld-Typen, die in einem Feed vorkommen müssen. Das sind description, name und

https://validator.w3.org/feed/docs/rss2.html

Django verfügt über ein integriertes Syndication-Feed-Generierungs-Framework, das die dynamischen Atoms und RSS-Feeds generiert.

Eine kurze Python-Klasse wird verwendet, um den Syndication-Feed in Django zu erstellen.

Die Feeds Klasse

Wir legen eine neue Datei an: event_manager/events/feeds.py und füllen sie mit folgendem Inhalt:

from django.contrib.syndication.views import Feed
from django.template.defaultfilters import truncatewords
from .models import Event

class LatestEventFeed(Feed):
    title = "Event Feed"
    link = "example.com"
    description = "Neue Events"

    def items(self):
        return Event.active.all()

    def item_name(self, item):
        return item.name

    def item_description(self, item):
        return truncatewords(item.descriptions, 30)

Die URL für den Feed anlegen

Wir öffnen die Datei event_manager/events/urls.py und fügen folgenden Eintrag hinzu:

from .feeds import LatestEventFeed

urlpatterns = [
    # andere URLs
    # diese URL hier eintragen
    path("feed/rss", LatestEventFeed(), name="event_feed"),
]

Mehr zur Django Feeds: https://docs.djangoproject.com/en/stable/contrib/syndication/