Повторное использование 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/