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) 

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