如何从SearchQuerySet中获取n个搜索对象而不更改类型?

时间:2015-12-12 12:58:40

标签: python django elasticsearch django-haystack searchqueryset

我正试图获得10个对象,如:

q_auth = SearchQuerySet().filter(content=validate_query)
q_auth = q_auth[:10]
print type(q_auth)

我想要的输出是:<class 'haystack.query.SearchQuerySet'>但我得到的是<type 'list'>

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我尝试过与你的代码类似的东西,但得到的结果如下:

<class 'django.db.models.query.QuerySet'>

根据您所拥有的内容,我认为您可以尝试以下方式:

print type(q_auth[0])

答案 1 :(得分:0)

查看source,您会看到q_auth[:10]返回结果列表。 SearchQuerySet是懒惰的,在您使用切片检索它们之前可能没有所有结果,即q_auth[:10]

只是做:

first_results = q_auth[:10]   

并使用以下内容访问结果:

first_results[0]

我建议不要这样做:

q_auth = q_auth[:10]

因为q_auth的{​​{1}}实例以后无法检索到更多结果。