مستجد تماما هنا ....
https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/search/#postgresql -fts-search-config
مرحبًاgotexis. يقوم 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))
واو شكرًا على مساعدتك @ rpkilby ، من فضلك أعطني بعض الأيام
أنا الآن أضرب رأسي باستخدام الجرافين-دجانغو الذي يتكامل مع مرشحات django.
آمل (بشكل مثالي) تنفيذ ذلك باستخدام GraphQL
لاحظ أنه قد تكون هناك بعض المشكلات المتعلقة بكيفية التفاف الجرافين-دجانجو لمرشح django. على سبيل المثال ، انظر # 927
تضمين التغريدة
يبدو أن هناك أكوام الواقع من القضايا مع الجرافين نظرا لمدى أصبحت لا تحظى بشعبية بيثون + GraphQL بالمقارنة مع عقدة، بالإضافة إلى المؤلف هو التخلي عن المشروع، لن توافق على ذلك :)
أحد أحدثها ، والذي يرتبط أيضًا بفلتر django ، هو أن DjangoFilterConnectionField لا يعمل مع الجلب المسبق ، مما ينتج عنه الكثير من الاستعلامات. لقد فشلت في تصحيحه ، وأتساءل عما إذا كان لديك أي خبرة لمشاركتها :)
التعليق الأكثر فائدة
مرحبًاgotexis. يقوم django-filter بشكل أساسي بأمرين:
عندما لا يكون هناك فئة
Filter
تقوم ببناء الاستعلام الذي تبحث عنه ، فلديك خياران:Filter.method
.إذا كان بإمكانك تعميم الاستعلام ، فستكون كتابة
Filter
مخصصًا أكثر قابلية لإعادة الاستخدام ، لكنFilter.method
مفيد للحالات غير المتكررة. ستكتب شيئًا مثل: