gpt4 book ai didi

python - 使用 django 过滤器搜索多个单词时该怎么办

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:19 28 4
gpt4 key购买 nike

我制作了一个过滤器,您可以在其中搜索不同的关键字,并且它有效。

我的问题是,当我尝试搜索多个关键字时。

如何才能过滤搜索以便分隔每个单词?

这是它的外观图片:

第一张图显示了当我只搜索一个关键词时,第二张图显示了当我搜索两个关键词时:enter image description here enter image description here

这是我的模型类代码:

class Task(managers.Model):
keywords = models.ManyToManyField('Keyword', blank=True, related_name='event_set')
objects = managers.DefaultSelectOrPrefetchManager.from_queryset(managers.TaskQuerySet)()

这是我的过滤器类:

class TaskFilterSet(BaseFilterSet):

keywords = django_filters.MethodFilter(action="filter_keywords")

class Meta:
model = models.Task

def filter_keywords(self, queryset, value):
from django.db.models import Q
return queryset.filter(Q(keywords__word__icontains=value))

最佳答案

假设您正在搜索以下关键字:fooboo。并且您有以下关系:

search['foo','boo']
object.keywords['foo','boo','woo']

您可以迭代 object.keywords 并查看您拥有的搜索对象之一是否与 object 中的 keywords 之一匹配。如果是,则返回包含该对象的过滤器

关于python - 使用 django 过滤器搜索多个单词时该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166490/

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