我的haystck结果未显示在结果页

时间:2016-03-18 22:10:58

标签: python django django-haystack

我是python和django的新手,我正在跟随主要勘误表。现在我正试图让结果页面显示我的结果。这不是我的代码,而是来自教程。这是我的代码。

my views.py

def post_search(request):

form = request.GET.get('q')
    results = SearchQuerySet().models(Post).filter(content=form)
    # count total results
    total_results = results.count()
    template = 'blog/post/search.html',
    context = {
        'form': form,
        'results': results,
        'total_results': total_results

    }
    return render(request, template, context)

我的search.html

{% extends "blog/base.html" %}

{% block title %}Search{% endblock %}

{% block content %}
     {% if request.GET %}
           <h1>Posts containing "{{ form.query }}"</h1>
           <h3>Found {{ total_results }} result{{ total_results|pluralize}}</h3>
           {% for result in results %}
             {% with post=result.object %}
               <h4><a href="{{ post.object.get_absolute_url }}">{{ post.title }}</a></h4>
               {{ post.body|truncatewords:5 }}
             {% endwith %}
                 {% empty %}
                <p>There are no results for your query.</p>
           {% endfor %}
           <p><a href="{% url 'blog:post_search' %}">Search again</a></p>
         {% else %}
           <h1>Search for posts</h1>

           <form action="." method="get">
             <div>
                <div class="input-group">
                  <input type="text" class="form-control" autocomplete="off" name="q" id="search" placeholder="search" value="{{ request.GET.q }}">
                  <span class="input-group-btn">
                    <button type="submit" class="btn btn-default">search</button>
                  </span>
                </div><!-- /input-group -->

                <ul class="list-group" id="search-results" style="margin: 5px 0 0 0; width: 325px">
                </ul>
     </div>

   </form>
     {% endif %}

 {% endblock content%}

my post_text.txt

{{ object.title }}
{{ object.tags.all|join:", " }}
{{ object.body }}

search_indexes.py

from haystack import indexes

from .models import Post


class PostIndex(indexes.SearchIndex, indexes.Indexable):
   text = indexes.CharField(document=True, use_template=True)
   publish = indexes.DateTimeField(model_attr='publish')

   # title_auto = indexes.EdgeNgramField(model_attr='title')
   # content_auto = indexes.EdgeNgramField(model_attr='content')

   def get_model(self):
       return Post

   def index_queryset(self, using=None):
       """Used when the entire index for model is updated."""
       return self.get_model().objects.all()

我运行搜索后在页面上显示的唯一内容是

Posts containing ""
Found 1 result

Search again

如果我这样做

{{results}}

它返回此

[<SearchResult: blog.post (pk='2')>]

其中显示包含姓名的帖子将显示 找到的结果返回一个数字,让我知道结果正常工作

正确方向的任何和所有帮助或指导都是非常好的。试图阅读文档。它们对我来说似乎很模糊。正如我所说,我是一个新手。只有关于这个主题的视频,并且与frank hibbert和他用ajax

0 个答案:

没有答案