Using two different templates for search results - Haystack -


i totally confused how can use 2 different template files search results. suppose have 2 different pages searching , want have different decorations each page search results.

this search bar in 1 page:

<div class="main-header_search">                 <form method="get" action="/search1" id="header_find_form" class="main-search yform" role="search"                       data-component-bound="true">                     <div class="arrange arrange--middle arrange--6">                         <div class="arrange_unit" style="width: 100%;">                             <div class="main-search_suggestions-field search-field-container find-decorator">                                 <label class="main-search_pseudo-input pseudo-input">                                     <span class="pseudo-input_text">find</span>                                     <span class="pseudo-input_field-holder">                                         <input autocomplete="off" type="search" id="id_q" maxlength="64" name="q"                                                placeholder="cheap dinner, cafe" value=""                                                class="main-search_field pseudo-input_field"                                                aria-autocomplete="list" tabindex="1" data-component-bound="true">                                     </span>                                 </label>                                  <div class="main-search_suggestions suggestions-list-container search-suggestions-list-container hidden"                                      data-component-bound="true">                                     <ul class="suggestions-list" role="listbox" aria-label="search results"></ul>                                 </div>                             </div>                         </div>                         <div class="arrange_unit main-search_actions">                              <button class="ybtn ybtn-primary main-search_submit" id="header-search-submit"                                     tabindex="3"                                     title="search" type="submit" value="search">                                 <i class="i ig-common_sprite i-search-common_sprite"></i>                               </button>                         </div>                     </div>                 </form>              </div> 

and in page:

<form method="get" name="business_search_form" class="yform business-search-form"                   action="/search2" role="search">                 <div class="arrange arrange--6 arrange--stack">                     <div class="arrange_unit arrange_unit--fill">                         <div class="arrange arrange--equal arrange--6 arrange--stack">                             <div class="arrange_unit">                                 <label class="responsive-visible-small-block hidden-non-responsive-block">business                                     name</label>                                  <div class="pseudo-input business-find-decorator">                                     <div class="flex-container-inline">                                         <div class="label responsive-hidden-small">business name</div>                                         <div class="flex-box input-holder">                                             <input class="landing-search-biz-name" placeholder="e.g. mel's diner"                                                    name="q" autocomplete="off" type="text">                                         </div>                                     </div>                                 </div>                             </div>                         </div>                     </div>                     <div class="arrange_unit nowrap">                         <button type="search" value="search"                                 class="ybtn ybtn-primary yform-search-button ybtn-full-responsive-small"><span><span                                 class="i-wrap ig-wrap-common i-search-dark-common-wrap"><i                                 class="i ig-common i-search-dark-common"></i> started</span></span></button>                     </div>                 </div>             </form> 

i use in urls.py have 2 different templates each search results:

(r'^search1/', include('haystack.urls'), name='template1'), (r'^search2/', include('haystack.urls'),name='template2'), 

i using simple haystack backend in setting.py:

haystack_connections = {     'default': {         'engine': 'haystack.backends.simple_backend.simpleengine',     }, } 

here how it:

first, create search form inherits haystack's searchform:

class itemsearchform(searchform):     def search(self, request):         items = super(itemsearchform, self).search().models(item)  // item model name         shops = super(itemsearchform, self).search().models(shop)         return {'items': items, 'shops': shops} 

second, create views uses form:

def searchitems(request):     form = itemsearchform(request.get)     results = form.search(request)     return render(request, 'search/search.html', {         'items': results['items']     })   def searchshops(request):     form = itemsearchform(request.get)     results = form.search(request)     return render(request, 'search/search.html', {         'shops': results['shops']     }) 

please note these 2 views use different return values. can change fix situation.

then, configure urls:

(r'^search1/', 'views.search1', name='search1'), (r'^search2/', 'views.search2', name='search2'), 

the thing left do, write indexes file , documents. should it.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -