0

「フォーム」をコンテキストとして渡そうとしています、私のコード:

class BlogSearchView(ListView):
    model = Blog
    paginate_by = 20
    template_name = "base/blog_search.html"

    def get_queryset(self):
        qset = super(BlogSearchView, self).get_queryset()
        new_data = self.request.GET.copy()
        form = BlogSearchForm(new_data)
        if form.is_valid():
            search_term = form.cleaned_data['q']#>> how to insert this in template
            if search_term:
                qset = qset.filter(Q(title__icontains=search_term)|
                                   Q(body__icontains=search_term))
            else:
                qset = []
        else:
            form = BlogSearchForm() #>> how to insert this in template
        return qset

get_context_data を使用してみますが、エラーが発生します。

4

1 に答える 1

1

でオーバーライドする必要がありget_context_dataますBlogSearchView

迅速な解決策:

class BlogSearchView(ListView):

    def get_queryset():
        ...
        #Your queryset definition
        self.search_term = search_term
        self.form = form
        return qset

    def get_context_data(self, **kwargs):
        context = super(BlogSearchView, self).get_context_data(**kwargs)
        context['search_term'] = self.search_term
        context['form'] = self.form
        return context

そして、テンプレートでsearch_termandを使用できます。form

于 2013-04-22T09:36:14.793 に答える