View All Posts. MiCHiLU.com powered by Django ;-)

[Django]: Search Feed

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}),
)
Tue, 21 Aug 2007 01:27:57 +0900 source edit
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.
View All Posts. MiCHiLU.com powered by Django ;-)