Django Haystack,elasticsearch未提供结果

2024-04-24 07:15:24 发布

您现在位置:Python中文网/ 问答频道 /正文

免责声明:不觉得有必要对下面的代码进行分类,我只是在这里提供所有与问题相关的信息以防万一

我正在用django制作一个web应用程序,我想实现一个工作搜索栏。在做了一些研究之后,使用elasticsearch的haystack似乎是一个受欢迎的选择。我学习了一些教程,其中最让我受益匪浅的是:

http://nanvel.name/2013/07/django-haystack-example

我按照教程的整个过程,把所有的东西都连接到我的数据库和模型上,但是当我在搜索栏中输入内容时,它不会给出任何结果,即使输入的内容与数据库中的内容直接匹配。下面是我尝试实现所有这些的代码。在

型号:

class GameCard(models.Model):
    title = models.CharField(max_length=250)
    console = models.CharField(max_length=500)
    genre = models.CharField(max_length=500)
    coverArt = models.CharField(max_length=1000)

增加设置.py公司名称:

^{2}$

添加到视图.py在

def GameCards(request):
    form = GameCardSearchForm(request.GET)
    GameCards = form.search()
    return render_to_response('search/search.html', {'GameCards': GameCards})

游戏车_文本.txt文件:

{{ object.title }}
{{ object.coverArt }}

搜索_索引.py公司名称:

from django.utils import timezone
from haystack import indexes

from .models import GameCard


class GameCardIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    title = indexes.CharField(model_attr='title')
    coverArt = indexes.CharField(model_attr='coverArt')

    def get_model(self):
        return GameCard

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

在搜索.html公司名称:

{% extends 'gamelobby/home.html' %}

{% block content %}
<form type="get" action=".">
    <input type="text" name="q">
    <button type="submit">Search</button>
</form>

{% for GameCard in GameCards %}
<h1>{{ GameCard.title }}</h1>
<p>
    {{ GameCard.coverArt }}
</p>
{% endfor %}
{% endblock %}

在表单.py公司名称:

class GameCardSearchForm(SearchForm):

    def no_query_found(self):
        return self.searchqueryset.all()

我很确定我已经在这里涵盖了所有的基础,我不明白为什么没有结果显示在html页面上。顺便说一句,我当然有搜索.html连接到另一个主要的html文件和block标记,我只是认为它会占用太多的空间来包含该文件中的所有html,而且我不相信它与问题有关。不管怎样,如果任何人有任何提示或解决方案,请不要觉得有必要通过所有这些代码,我只是觉得这将是正确的,提供信息可能。谢谢!在


Tags: pyself名称modeltitlemodelshtml公司