2016-08-12 76 views
1

我使用:Django的草垛+嗖SearchQuerySet()所有()始終無

Django的:1.9.7
Django的乾草堆:2.5.0
嗖:2.7.4

search_index.py

class ProfileIndex(indexes.SearchIndex, indexes.Indexable): 
    text = indexes.CharField(document=True, use_template=True) 
    last_name= indexes.CharField(model_attr='last_name') 
    content_auto = indexes.EdgeNgramField(model_attr='first_name') 
    def get_model(self): 
     return User 
    def index_queryset(self, using=None): 
     """Used when the entire index for model is updated.""" 
     return self.get_model().objects.all() 

user_text.txt

{{ object.last_name }} 

在views.py我嘗試:
SearchQuerySet().count() => returns 0
SearchQuerySet().all() => returns None

我讀過關於在Django的草垛最新嗖實施一些問題,但我不知道如果這個問題是在我的代碼

+0

你運行過'manage.py rebuild_index'嗎? – solarissmoke

+0

是的,我多次更改了ProfileIndex的結構(使用不同的model_attr),更改了模板文件,但仍然沒有更改 – lcadc17

+0

重建索引時,它應該告訴您索引了多少項目。它在那裏說什麼? – solarissmoke

回答

0

請在這裏看到我的回答:

Django Haystack & Whoosh Search Working, But SearchQuerySet Return 0 Results

有一個在Django的草堆與Woosh的錯誤,這意味着,如果你使用NGRAM或EdgeNG ram字段SearchQuerySet()。count()和SearchQuerySet()。all()。count()將始終返回0,除非您指定了一個過濾器。

例如

SearchQuerySet().all().count() 
>> 0 

SearchQuerySet().all().exclude(content='thisshouldnotmatchanything').count() 
>> 14 [the total number of indexed objects]