2010-08-12 23 views
0

Ce qui serait un moyen d'avoir des flux rss basés sur une plage de dates dans Django. Par exemple si j'avais le type de modèle de flux django rss suivant.Réutilisation d'un flux RSS Django pour différentes plages de dates

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') 

Quelle serait un moyen d'avoir PopularFeed utilisé pour tous les temps, Mois dernier, La semaine dernière, 24 dernières heures et vice-versa si je voulais avoir LeastPopularFeed?

Répondre

1

Vous devez définir une classe pour chaque flux que vous souhaitez. Par exemple, pour l'alimentation du mois dernier:

class LastMonthFeed(Feed): 

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

Puis ajouter ces flux à votre urls.py comme indiqué dans docs: http://docs.djangoproject.com/en/1.2/ref/contrib/syndication/