Django - 在SearchQuerySet()上调用.object返回None

时间:2016-06-10 15:58:18

标签: django django-views django-haystack whoosh

我的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结果时得到无对象?

0 个答案:

没有答案