Django 응용 프로그램에서 django-haystack + whoosh를 사용하려고합니다. 내 인덱스 클래스는이django-haystack SearchQuerySet을 사용하여 결과를 필터링하는 방법?
class ArticleIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
abstract = indexes.CharField(model_attr='abstract')
def get_model(self):
return Article
def index_queryset(self, using=None):
return self.get_model().objects.all()
처럼 보이는 내 모델은 다음과 같습니다, 나는에 결과를 문서 모델을 쿼리하고 반환 아약스 검색 필드를 사용하고 내 템플릿에서
class Article(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(User)
abstract = models.CharField(max_length=500, blank=True)
full_text = models.TextField(blank=True)
proquest_link = models.CharField(max_length=200, blank=True, null=True)
ebsco_link = models.CharField(max_length=200, blank=True, null=True)
def __unicode__(self):
return self.title
같은 페이지. 본질적으로, ajax는 검색 텍스트가 포함 된 HttpPost 요청을 뷰로 시작합니다. 보기에서 나는 HttpPost를 통해 전송 된 검색 텍스트를 추상 필드에 포함하는 모든 Article 개체를 가져오고 싶습니다. 내 견해로는 검색 텍스트를 가져온 다음
search_text = request.POST['search_text']
articles = SearchQuerySet().filter(abstract=search_text)
과 같은 모델을 얻으려고 시도하지만 어떤 결과도 반환하지 않습니다. 전화를 걸면
articles = SearchQuerySet().all()
12 개의 모델 개체가 로컬 테스트 DB에 반환됩니다. 그러나 필터 함수는 결과를 반환하지 않습니다. 내가 원하는 것은
의 등가물입니다.articles= Article.objects.filter(abstract__contains=search_text)
어떤 제안이 있습니까? 일부 파고 후 당신에게
'ArticleIndex'에서 변경된 후에'manage.py update_index'를 부르는 것을 잊지 않았습니까? – maciek
나는 이것을 기억하지만 믿을 수 없다! – AndrewSmiley