Fél*_*lix 6 django multivalue whoosh django-haystack
我已经为我的索引(haystack)添加了一个MultivaluedField,我需要搜索ManyToMany相关字段,但它不起作用.
该引擎是WHOOSH.
这是我的索引的样子:
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()]
Run Code Online (Sandbox Code Playgroud)
这就是我的模型的样子:
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)
Run Code Online (Sandbox Code Playgroud)
如果我使用SearchQuerySet().filter(region__in = words_list)它可以工作.问题是我不知道用户何时搜索某个区域或其他字段,因此我必须使用SearchQuerySet().filter(content__icontains = words_list).并且以这种方式找不到任何东西.
谢谢
谢谢!!
小智 0
尝试 :
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 = CharField(model_attr='regions')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1743 次 |
最近记录: |