стог сена в представлении - PullRequest
2 голосов
/ 27 июля 2011

Folks. Я просто не могу перейти от учебника / документации 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 Ответ

2 голосов
/ 28 июля 2011

Вы не передали ничего, что называется page, поэтому, естественно, оно пустое. Он никуда не «приходит», если вы специально не передадите его.

Бит, который вы, похоже, не делаете, - это на самом деле выполнение поиска и передача результатов в шаблон. Посмотрите, как это делается во встроенном представлении Haystack basic_search view - он вызывает метод .search() формы, передает результаты в класс Paginator, а затем передает его в контекст.

...