Поиск с пробелом или без него в фильтре django - PullRequest
1 голос
/ 06 января 2020

У меня есть функция поиска по имени, которая должна возвращать имя одного человека, если поиск соответствует имени. Мне нужно показывать результаты с пробелом или без него между ними. Например: «AB C» должен показывать результаты AB Chacko, AB Chacko, AB Chaks et c. Точно так же поиск По термину «ABC» необходимо также перечислить вышеупомянутые результаты.

try:
    term = request.GET['term']
    if term:
            queryset_primary = PrimaryUserSerializer(UserTable.objects.filter(Q(name__icontains =term)|Q(occupation__icontains=term)).order_by('name'), many=True, context=context).data
    else:
        pass
except:
    pass

В моделях только поле «имя» не имеет имени, фамилии

1 Ответ

1 голос
/ 06 января 2020

Попробуйте этот код, но это очень плохо для производительности.

    try:
        term = request.GET['term']
        if term:
                queryset_primary = PrimaryUserSerializer(UserTable.objects.filter(Q(name__icontains =term) | Q(name__istartswith=term) | Q(name__iexact=term) | Q(name__iendswith=term) | Q(name__startswith=trm)| Q(occupation__icontains=term)).order_by('name'), many=True, context=context).data
        else:
            pass

except:
    pass
...