рдпрд╣рд╛рдБ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреЛрдм ....
https://docs.djangoproject.com/hi/2.1/ref/contrib/postgres/search/#postgresql -fts-search-configuration
рд╣рд╛рдп @ рдЧреЛрдЯреЗрдХреНрд╕рд┐рд╕ред django-filter рдореВрд▓ рд░реВрдк рд╕реЗ рджреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЬрдм рдХреЛрдИ Filter
рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛ рд░рд╣реА рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
Filter.method
рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдпрджрд┐ рдЖрдк рдХреНрд╡реЗрд░реА рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХрд╕реНрдЯрдо Filter
рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ Filter.method
рдПрдХрдмрд╛рд░рдЧреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦреЗрдВрдЧреЗ:
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))
рд╡рд╛рд╣ рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @rkilby , рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рдХреЛрдб рдХреЛ рдкрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рджрд┐рди рджреЗрдВ ...
рдЕрднреА рдореИрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЧреНрд░реИрдлреЗрди-рдбреАрдЬреЗрдВрдЧреЛ рд╕реЗ рдкреАрдЯ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдбреАрдЬреЗрдВрдЧреЛ-рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ) рдЗрд╕реЗ GraphQL рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░реЗрдВ
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЧреНрд░реИрдлреЗрди-рдбреАрдЬреЗрдВрдЧреЛ рдбреАрдЬреЗрдВрдЧреЛ-рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, #927 . рджреЗрдЦреЗрдВ
@rpkilby рд╣рд╛рдБ рд╕рд░
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдлреАрди рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрджреНрджреЛрдВ рдХреЗ рдвреЗрд░ рд╣реИрдВ , рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдиреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╛рдпрдерди + рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ рдХреИрд╕реЗ рдмрди рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд▓реЗрдЦрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ :)
рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдореЗрдВ рд╕реЗ рдПрдХ, рдЬреЛ django-filter рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЙрдирдХрд╛ DjangoFilterConnectionField рдкреНрд░реАрдлрд╝реЗрдЪрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд░рд╢реНрди рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рд╣реИ :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдп @ рдЧреЛрдЯреЗрдХреНрд╕рд┐рд╕ред django-filter рдореВрд▓ рд░реВрдк рд╕реЗ рджреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЬрдм рдХреЛрдИ
Filter
рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЬрд╛ рд░рд╣реА рдХреНрд╡реЗрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:Filter.method
рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдпрджрд┐ рдЖрдк рдХреНрд╡реЗрд░реА рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХрд╕реНрдЯрдо
Filter
рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐Filter.method
рдПрдХрдмрд╛рд░рдЧреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦреЗрдВрдЧреЗ: