rev.5654 から django.contrib.syndication.feeds.Feed が HttpRequest を受け取るようになってる。 自前でフィード構築したりしなくてもいい。
from django.conf.urls.defaults import *
from django.contrib.syndication.feeds import Feed
from django.contrib.syndication.views import feed
from django.http import Http404
from michilu.blog.models import Entry
class SearchEntries(Feed):
def __init__(self, slug, request):
super(SearchEntries, self).__init__(slug, request)
self.keyword = self.request.GET.get("q")
self.title = "%s - MiCHiLU Life." % self.keyword
def items(self):
if not self.keyword:
raise Http404
return Entry.objects.filter(content__contains=self.keyword)\
.order_by("-add_date")[:20]
feeds = {
'search': SearchEntries,
}
urlpatterns = patterns('',)
(r'^(?P<url>search)/', feed, {'feed_dict': feeds}),
)
