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

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

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 ответ

Решение

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

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/

Другие вопросы по тегам