Django отправка фильтра по ключевым словам - PullRequest
0 голосов
/ 03 августа 2020

У меня есть класс ключевых слов, который ссылается на что-то, я пытаюсь создать фильтр, чтобы вы могли передать предложение, и он найдет ключевые слова в предложении. теги-ключевые слова /? description = эти молодые люди раздражают

TagTrigger будет выглядеть так: trigger = young people (CharField)

Мне было интересно, есть ли способ сделать это в Django ORM.

    def get_queryset(self):
    qs = super().get_queryset()
    description = self.request.GET.get('description')

    if description:
        qs = qs.filter(keyword__whatever=description)

    return qs

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Я решил эту проблему самостоятельно, аннотировав запрос:

    def get_queryset(self):
    qs = super().get_queryset()
    description = self.request.GET.get('description')

    if description:
        qs = qs.annotate(description=Value(description, output_field=CharField()))
        qs = qs.filter(description__icontains=F('keyword'))

    return qs
0 голосов
/ 04 августа 2020
def get_queryset(self):
qs = super().get_queryset()
description = self.request.GET.get('description')

if description:
    qs = qs.filter(keyword__contains=description)

return qs

здесь содержатся, называются поисками, вы можете найти все возможное в документах ниже, https://docs.djangoproject.com/en/3.0/ref/models/querysets/#id4

...