2011-06-20 14 views
1

嘿,我一直在刻苦努力獲得草垛與嗖合作執行一個Django CMS項目,我一直在努力搜索後端。弄清楚一些真正奇怪的權限錯誤後,我幾乎可以嚐到成功。Django的CMS-搜索不顯示任何結果

我現在有正確的草垛創建索引,它甚至會顯示我已經創建了一個索引自定義應用程序的結果,但是我無法得到它,以顯示CMS頁面的東西任何結果。結果被返回,因爲我沒有得到「沒有結果」的消息,但沒有任何內容正在打印出results.html模板。

銘記,即時通訊讓Django的CMS-搜索處理索引CMS的應用程序,我沒有想到我會需要添加任何額外費用,以獲得顯示的結果。

那麼概述什麼我到目前爲止有嗖後端安裝 草堆

setting.py設置的

HAYSTACK_SITECONF = 'lactoseintolerant.lactose_search.search_sites' 
HAYSTACK_SEARCH_ENGINE = 'whoosh' 
HAYSTACK_WHOOSH_PATH = '/home/mike/sites/lactosetoloerant/lactoseintolerant/whoosh' 
HAYSTACK_SEARCH_RESULTS_PER_PAGE = 50 

search_sites.ph文件看起來像

import haystack 
from cms.models import monkeypatch_reverse 
from cms.plugin_pool import plugin_pool 

monkeypatch_reverse()  
haystack.autodiscover() 

我有一個自我的主題模型索引看起來像這樣(這是工作和resurning Reuslts)

from topics.models import Topic 
from haystack.indexes import * 
from haystack import site 


class TopicIndex(SearchIndex): 
    text = CharField(document=True, use_template=True) 

    def index_queryset(self): 
     """ 
     This is used when the entire index for model is updated, and should only include 
     public entries 
     """ 
     return Topic.objects.filter(active=True) 



site.register(Topic, TopicIndex) 

results.html模板的樣子

{% extends "base.html" %} 
{% load cache cms_tags menu_tags %} 
{% block base_content %} 

    <div id="panel-left"> 
     {% block nav %} 
      <ul id="nav-left"> 
       {% show_menu 1 100 100 100 %} 
      </ul> <!-- #nav-left --> 
     {% endblock %} 

     {% block panel_left %} 

     {% endblock %} 
    </div> 

    {% block panel_right %} 

     <div id="panel-main">   
      {% ifequal q '' %} 
       <h1 id="page-head-2">Search Results Page</h1> 
       <p>Please provide search criteria or keywords</p> 
       <br /> 
       <form action="."> 
        <p> 
         <input type="text" name="q" value="{{ q }}"> 
         <input type="submit" name="search" value="Search"> 
        </p> 
       </form> 
      {% else %} 
       <h1 id="page-head-2">Search Results - page {{ request.GET.page|default:1 }} of {{ paginator.num_pages }}</h1> 
       <h1 id="page-head-2">Found {{ paginator.count }} for <span id="searchString">'{{ q }}'</span></h1> 
       <form action="."> 
        <p> 
         <input type="text" name="q" value="{{ q }}"> 
         <input type="submit" name="search" value="Search"> 
        </p> 
       </form> 

       <ul id="searchResults"> 
        {% for item in current_page.object_list %} 

         <li class="searchResult"> 
           <h2 class="searchTitle">{{ forloop.counter }}. {{ item.get_title }}</h2> 
           <a class="searchLink" href="{{ item.get_absolute_url }}">{{ item.get_absolute_url }}</a> 
         </li> <!-- .searchResult --> 

        {% endfor %} 
       </ul> 

       {% if paginator.num_pages > 1 %} 
        <div id="pagination"> 
         {% for page_range_item in paginator.page_range %} 
           {% if not request.GET.page and page_range_item == 1 or request.GET.page == page_range_item|safe %} 
            <span class="pag-link current" href="/topics/?page={{ page_range_item }}">{{ page_range_item }}</span> 
           {% else %} 
            <a class="pag-link" href="/search/?q={{ q }}&page={{ page_range_item }}">{{ page_range_item }}</a> 
           {% endif %} 
         {% endfor %} 
        </div> 
       {% endif %} 

      {% endifequal %} 

     </div>  
    {% endblock %} 


    {% endblock %} 

林顯然缺少明顯的東西在這裏任何幫助,將grealt感謝!

乾杯

+0

呢'從haystack.query進口SearchQuerySet; SearchQuerySet()'返回任何cms頁面? – stefanfoulis

+2

你解決了嗎?如果是這樣,請發佈解決方案。提前致謝! – Daviddd

回答

0

我覺得你得到它差不多,試圖改變{{ item.get_absolute_url }}{{ item.object.get_absolute_url }} Inn的results.html文件。