如何在Haystack中仅返回特定类型的索引对象

时间:2012-02-27 13:43:34

标签: django django-haystack

有没有办法使用SearchQuerySet并将结果限制为只有特定的索引模型?即如果我向Haystack添加Note和NoteIndex,我可以只提取与Note实例对应的结果吗?

修改

我看了一下,发现有一个名为django_ct的保留字段存储在每个索引模型上。是否可以过滤此字段?它需要什么价值?

DOUBLE EDIT:

没关系。阅读Haystack源代码后,django_ct在内部为“appname.modelname”,可以使用SearchQuerySet.filter进行查询(django_ct ='appname.modelname')

1 个答案:

答案 0 :(得分:1)

根据Haystack文档,SearchQueryset对象有一个名为models()的方法,它将结果限制在那些模型中。

e.g。

SearchQuerySet().models(BlogEntry, Comment).filter(content='foo')

如您所见,它使用实际的模型类。我的猜测是,它使用它来查找内容类型以执行过滤。