ここでは完全に初心者です。
https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/search/#postgresql -fts-search-configuration
こんにちは@gotexis。 django-filterは基本的に2つのことを行います:
探しているクエリを構成するFilter
クラスがない場合は、次の2つのオプションがあります。
Filter.method
機能を使用します。クエリを一般化できる場合は、カスタムFilter
を作成する方が再利用しやすくなりますが、 Filter.method
は1回限りのインスタンスに役立ちます。 あなたは次のようなものを書くでしょう:
from django.contrib.postgres.search import SearchQuery, SearchVector
from djanog_filters import FilterSet, CharFilter
class F(FilterSet):
# The model `field_name` is the field you want to search on and is passed to your `method`.
# The `method` argument is the name of the method to call to perform filtering.
search = CharFilter(field_name='body_text', method='search_fulltext')
def search_fulltext(self, queryset, field_name, value):
return queryset \
.annotate(search=SearchVector(field_name)) \
.filter(search=SearchQuery(value))
@rpkilbyの助けに感謝します、このコードを消化するために
今、私はdjango-filtersと統合されたgraphene-djangoで頭を叩いています。
これをGraphQLで(理想的には)実装したいと思っています
グラフェン-djangoがdjango-filterをラップする方法に問題がある可能性があることに注意してください。 例:#927を参照
@rpkilbyはいサー
確かにそこにあるように見えますのPython + GraphQLがノードと比較してとなっている、プラス著者がプロジェクトにあきらめているか不評与えられたグラフェンの問題の山、あなたは同意しないだろう:)
django-filterにも関連する最新のものの1つは、DjangoFilterConnectionFieldがプリフェッチで機能しないため、大量のクエリが発生することです。 私はそれをデバッグするのに失敗しました、あなたが共有する経験があるかどうか疑問に思います:)
最も参考になるコメント
こんにちは@gotexis。 django-filterは基本的に2つのことを行います:
探しているクエリを構成する
Filter
クラスがない場合は、次の2つのオプションがあります。Filter.method
機能を使用します。クエリを一般化できる場合は、カスタム
Filter
を作成する方が再利用しやすくなりますが、Filter.method
は1回限りのインスタンスに役立ちます。 あなたは次のようなものを書くでしょう: