Повторное использование RSS-канала Django для разных диапазонов дат

Каким был бы способ иметь 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?


person nyxtom    schedule 12.08.2010    source источник


Ответы (1)


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

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/

person Andrey Fedoseev    schedule 12.08.2010