一个视图中的干草堆

时间:2011-07-27 19:26:24

标签: django django-haystack

民间。我无法从Haystack教程/文档跳转到我的(简单)应用程序。

根据教程,我有Haystack / Whoosh工作,并提供结果。现在,我想从我的存档页面上的表单(而不是单独的搜索页面)进行搜索,并将结果提供回同一页面。

我已经开始并显示搜索表单,并返回查询:

def blog_list(request, template_name="blog/blog_list.html"):
    query=request.GET.get('q','')
    form=ModelSearchForm({'q': query })

    extra_context = {
         'query': query,
        'form': form,
    }
    return object_list(
        request,
        queryset=Entry.live.all(),
        extra_context=extra_context
    )

但是在模板中,{% for result in page.object_list %}没有返回任何内容。我的一半问题是,我不知道page.object_list来自哪里,无法从教程/文档中了解它。

任何人都可以为我阐明这一点吗?谢谢。

1 个答案:

答案 0 :(得分:2)

你还没有传递任何名为page的东西,所以很自然它是空的。它不会“来自”任何地方,除非你专门传递它。

您似乎没有做的事实上是执行搜索并将结果传递给模板。看看它是如何在Haystack的内置basic_search view中完成的 - 它调用表单的.search()方法,将结果传递给Paginator类,然后将其传递给上下文。