2016-08-12 6 views
1

Я использую:.Джанго-стог + Whoosh SearchQuerySet() все() всегда None

Джанго: 1.9.7
Джанго-стог: 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

я читал некоторые проблемы с последней реализации Свист в Джанго стоге сена, но я не уверен, что, если проблема в моем коде

+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() и count() всегда будут возвращать 0, если вы не укажете фильтр.

например.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^