1
異なるキーワードを検索できるフィルタを作成しました。djangoフィルタで複数の単語を検索する場合の対処方法
私の問題は、複数のキーワードを検索しようとしているときです。
検索をフィルタリングして各単語を分けることができるようにするにはどうすればよいですか?ここで
は、それがどのように見えるかの画像です:
まず絵は私が2で検索したときに、私は1つのキーだけの単語で検索した場合を示し、第二のショー:ここ
はのための私のコードですモデルクラス:
class Task(managers.Model):
keywords = models.ManyToManyField('Keyword', blank=True, related_name='event_set')
objects = managers.DefaultSelectOrPrefetchManager.from_queryset(managers.TaskQuerySet)()
そして、ここでは私のFilterクラスです:
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))
それはうまくいった!ありがとう! –