使用ResultSet访问实际对象从Djapian上的索引搜索返回Hit对象

时间:2010-07-08 21:18:06

标签: django object indexing return resultset

我希望能够在查询时返回实际的对象列表,而不是具有Hit对象的ResultSet。

示例:

indexer.search(word).prefetch()

这将返回具有匹配匹配的ResultSet对象,但我希望能够访问对象本身。类似于:

model.objects.filter(name__icontains=word)

会回来。 我不仅仅使用第二个选项的原因是我无法搜索不同模型的交叉对象,这可以通过索引来完成。

感谢

1 个答案:

答案 0 :(得分:0)

我明白了。该对象毕竟返回。它可以通过以下方式访问:

results = indexer.search(word).prefetch()
for hit in results:
    print hit.instance.model_attribute

其中model_attribute将是返回对象的现有变量

我相信类函数也可以在model_attribute中调用(最后添加了括号)

但请注意,在搜索跨模型时,不同模型可能存在“model_attribute”,也可能不存在“{{1}}”。这可能会导致错误。

我希望djapian有更多关于此的文档,因为我根本找不到它