インデックス (haystack) にを追加しましMultivaluedField
た。ManyToMany 関連フィールドを検索する必要がありますが、機能しません。
エンジンはシューです。
これは私のインデックスがどのように見えるかです:
class PostIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='author')
body = CharField(model_attr='body')
pub_date = DateTimeField(model_attr='publish')
regions = MultiValueField()
def prepare_regions(self, obj):
return [region.name for region in obj.regions.all()]
そして、これは私のモデルがどのように見えるかです:
class Post(models.Model):
title = models.CharField(_('title'), max_length=200)
author = models.ForeignKey(User, blank=True, null=True)
body = models.TextField(_('body'), )
allow_comments = models.BooleanField(_('allow comments'), default=True)
publish = models.DateTimeField(_('publish'), default=datetime.datetime.now)
categories = models.ManyToManyField(Category, blank=True)
tags = TagField()
objects = PublicManager()
regions = models.ManyToManyField(Region, blank=True)
私が使用する場合、SearchQuerySet().filter(region__in=words_list)
それは動作します。問題は、ユーザーがいつ地域や別のフィールドを検索しているのかわからないため、 を使用する必要があることSearchQuerySet().filter(content__icontains=words_list)
です。そして、このようにして何も見つかりません。
ありがとう
ありがとう!!