我的django 1.9.5项目让我走到了尽头。 我正在运行Haystack 2.4.1和Whoosh 2.7.4作为搜索引擎。这是我的问题:
访问以下视图时:
def search_titles(request):
resources = SearchQuerySet().autocomplete(content_auto=request.POST.get('search_text', ''))
return render_to_response('ajax_search.html', {'resources' : resources})
ajax_search.html如下所示:
{% if resources.count > 0 %}
{% for resource in resources %}
<li>{{resource.object.title}} _ {{resource.object}}</li>
{% endfor %}
{% else %}
<li>None to show</li>
{% endif %}
搜索工作正常。根据我搜索的内容,我得到了我应该获得的确切结果,但是在
行<li>{{resource.object.title}} _ {{resource.object}}</li>
他们都显示为
(。object.title为空,.object为None)。
如果有帮助,这是我的search_indexes.py:
class ResourceIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
published = indexes.DateField(model_attr='published')
content_auto = indexes.EdgeNgramField(model_attr='title')
def get_model(self): return Resource
def index_queryset(self, using=None): return self.get_model().objects.all()
和resource_text.txt:
{{object.title}}
{{object.subtitle}}
资源模型如下所示:
class Resource(models.Model):
authors = models.ManyToManyField(Person, related_name='resources_authored')
title = models.CharField(max_length=300, unique=True)
subtitle = models.CharField(max_length=300, unique=True)
published = models.DateField('date published')
def __str__(self): return self.title
def get_absolute_url(self): return '/resources/%i/' % self.id
class Meta:
ordering = ['-published', 'title']
get_latest_by = 'published'
任何人都有任何想法为什么我在SearchQuerySet中调用.object结果时得到无对象?