これは私が使用しているフィルタセットのやや簡略化した例です。これはDjango Rest FrameworkのDjangoFilterBackendで使用しています。 /api/bookmarks/?title__contains=word1&title__contains=word2
にリクエストを送信し、両方の単語を含む結果が返されますが、現在は最初のパラメータは無視され、word2のフィルタのみが無視されます。DRFを使用したDjango-filter - 同じルックアップで複数の値を適用するときに 'と'を実行する方法?
ご協力いただければ幸いです。
class BookmarkFilter(django_filters.FilterSet):
class Meta:
model = Bookmark
fields = {
'title': ['startswith', 'endswith', 'contains', 'exact', 'istartswith', 'iendswith', 'icontains', 'iexact'],
}
class BookmarkViewSet(viewsets.ModelViewSet):
serializer_class = BookmarkSerializer
permission_classes = (IsAuthenticated,)
filter_backends = (DjangoFilterBackend,)
filter_class = BookmarkFilter
ordering_fields = ('title', 'date', 'modified')
ordering = '-modified'
page_size = 10
定義済みのフィルタバックエンドを使用するビューコードを貼り付けることもできます。 – shady
ここで問題を確認してください。フィールドの値のセット(または値の間のOR)をフィルタする(https://github.com/carltongibson/django-filter/issues/137#issuecomment-77697870) – shady
@shadそのスレッドを読んでください。リンクしたコードは、値間の論理和を求めるのにANDは使用できません。上に掲示されたビューコード。助けてくれてありがとう。 – ergusto