gpt4 book ai didi

Django干草堆,如何搜索ManyToMany相关字段?

转载 作者:行者123 更新时间:2023-12-04 16:13:12 25 4
gpt4 key购买 nike

我在索引(干草堆)中添加了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()]
这就是我的模型的样子:
 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)。这样,什么也找不到。
谢谢
谢谢!!

最佳答案

尝试 :

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')

关于Django干草堆,如何搜索ManyToMany相关字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com