diadia

趣味のプログラムを書く 

サーチ機能を実装する

データベースからブログの記事内容だったり、商品を検索して結果を表示したい。

その場合には検索キーワードに合致する結果を表示する必要がある。
キーワードに合致するものだけ抽出する方法は、objects.filter()を使えば解決できる。
結果を表示するにはListViewを使う。

大まかなやり方

class SearchBlogView(ListView):

    template_name = '/search/list.html'
    def search_result(self, *args, **kwargs)
        query = request.GET.get('q')
        return Blog.objects.filter(title__icontains=query) 

次にフォームを作成する。どうやらユーザが検索する機能を装備させるのはいつもどおりの書き方ではだめらしい。