Django アプリケーションで django-haystack + whoosh を使用しようとしています。私のインデックスクラスは次のようになります
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 検索フィールドを使用して Article モデルをクエリし、同じページに結果を返しています。基本的に、ajax は検索テキストを含む HttpPost リクエストをビューに送信します。ビューでは、抽象フィールドに HttpPost 経由で送信された検索テキストが含まれているすべての Article オブジェクトを取得したいと考えています。私の見解では、検索テキストを取得してから、次のようなモデルを取得しようとしています
search_text = request.POST['search_text']
articles = SearchQuerySet().filter(abstract=search_text)
しかし、結果は返されません。私が電話したら
articles = SearchQuerySet().all()
ローカル テスト DB にある 12 個のモデル オブジェクトを返します。ただし、フィルター関数は結果を返しません。私がやろうとしていることは、
articles= Article.objects.filter(abstract__contains=search_text)
助言がありますか?ありがとうございました