问题描述
下面是我的文件。我的问题是 index_queryset() 中的打印语句打印了所有记录,但前端没有显示任何内容。 所有查询都显示“未找到结果”。
models.py
class Jobs(models.Model):
ID = models.CharField(primary_key = True,max_length = 50)
JOB_TITLE = models.TextField(db_index=True)
JOB_COMPANY = models.TextField()
JOB_LOCATION = models.TextField(db_index=True)
JOB_SALARY = models.CharField(max_length= 200,null=True)
search_indexes.py
from haystack import indexes
from .models import Jobs
class JobIndex(indexes.SearchIndex,indexes.Indexable):
text = indexes.CharField(document=True,use_template=True)
type = indexes.CharField(model_attr='JOB_TITLE')
location = indexes.CharField(model_attr='JOB_LOCATION')
def get_model(self):
return Jobs
def index_queryset(self,using=None):
print(self.get_model().objects.all()) # prints all the objects
return self.get_model().objects.all()
搜索.html
{% extends 'base.html' %}
{% block content %}
<h2>Searching</h2>
<form method="get" action=".">
<table>
{{ form.as_table }}
<tr>
<td> </td>
<td>
<input type="submit" value="Search">
</td>
</tr>
</table>
{% if query %}
<h3>Results</h3>
{% for result in object__list %}
<p>
<a href="{{ result.object.get_absolute_url }}">{{ result.object.JOB_TITLE }}</a>
</p>
{% empty %}
<p>No results found.</p>
{% endfor %}
<p>"PAGE": {{ page.object_list }} </p>
{% if page.has_prevIoUs or page.has_next %}
<div>
{% if page.has_prevIoUs %}<a href="?q={{ query }}&page={{ page.prevIoUs_page_number }}">{% endif %}« PrevIoUs{% if page.has_prevIoUs %}</a>{% endif %}
|
{% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next »{% if page.has_next %}</a>{% endif %}
</div>
{% endif %}
{% else %}
{# Show some example queries to run,maybe query Syntax,something else? #}
{% endif %}
</form>
{% endblock %}
Jobs_text.txt(在模板\索引\应用程序中)
{{ object.JOB_COMPANY }}
{{ object.JOB_LOCATION }}
任何帮助将不胜感激。以下是安装的软件包版本。
django-haystack 3.0, Django 3.2.5, pysolr 3.9.0, Solr安装的是8.9.0
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)