2012-02-27 45 views
1

有沒有什麼方法可以使用SearchQuerySet並將結果限制爲只有特定的索引模型?即如果我向Haystack添加Note和NoteIndex,是否可以只提取對應於Note實例的結果?如何僅返回Haystack中特定類型的索引對象

編輯:

我有一看,發現有一個名爲django_ct一個保留字段存儲在每個索引模型。是否有可能過濾這個領域?它需要什麼值?

DOUBLE編輯:

沒關係。讀取草堆源代碼之後,django_ct是「appname.modelname」內部,並且可以與SearchQuerySet.filter(django_ct =「appname.modelname」)

回答

1

根據草堆文檔被querired,一個SearchQueryset對象有一個方法調用模型()將結果限制爲這些模型。

例如

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

如您所見,它使用實際的模型類。我的猜測是它使用它來查找內容類型來執行過濾器。

+0

看着草垛代碼,「models()」方法實際上添加了模型類,而不是過濾器/限制。所以,如果你做了以上的查詢,然後想進一步限制到你不能做的模型:SearchQuerySet()。models(BlogEntry,Comment).filter(content ='foo')。models(Comment)但你需要在django_ct上過濾 – dalore 2013-11-05 15:12:25