Повторное использование RSS-канала Django для разных диапазонов дат - PullRequest
0 голосов
/ 12 августа 2010

Какой способ иметь RSS-каналы на основе диапазона дат в Django. Например, если у меня был следующий тип модели RSS-канала django.

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

Каким образом можно было бы использовать PopularFeed для «Все время», «Последний месяц», «Последняя неделя», «Последние 24 часа» и наоборот, если бы я хотел иметь LeastPopularFeed?

1 Ответ

1 голос
/ 12 августа 2010

Вам необходимо определить класс для каждого канала, который вы хотите.Например, для канала за последний месяц:

class LastMonthFeed(Feed):

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

Затем добавьте эти каналы в urls.py, как показано в документе: http://docs.djangoproject.com/en/1.2/ref/contrib/syndication/

...