Frage

Was für ein Weg wäre, Datumsbereich basierend RSS-Feeds in Django zu haben. Zum Beispiel, wenn ich habe die folgende Art von DJANGO rss feed Modell.

from django.contrib.syndication.feeds import Feed
from myapp.models import *

class PopularFeed(Feed):
    title = '%s : Latest SOLs' % settings.SITE_NAME
    link = '/'
    description = 'Latest entries to %s' % settings.SITE_NAME

    def items(self):
        return sol.objects.order_by('-date')

Was für ein Weg sein würde PopularFeed für alle Zeit verwendet haben, im vergangenen Monat Letzte Woche, der letzten 24 Stunden und umgekehrt, wenn ich wollte LeastPopularFeed haben?

War es hilfreich?

Lösung

Sie müssen eine Klasse für jeden Feed, den Sie definieren möchten. Zum Beispiel für letzten Monat ernähren:

class LastMonthFeed(Feed):

    def items(self):
        ts = datetime.datetime.now() - datetime.timedelta(days=30)
        return sol.object.filter(date__gte=ts).order_by('-date')

Dann fügen Sie diese Feeds zu Ihrem urls.py wie in docs gezeigt: http: //docs.djangoproject.com/en/1.2/ref/contrib/syndication/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top