如何使用 htmx 在 django 中进行不区分大小写的主动搜索

How to make a case insensitive active search in django with htmx

我得到了可以进行主动搜索的代码。我让它工作,但问题是它不能很好地搜索。如果它是一个小写字母,而您输入大写字母,则它无法识别。它区分大小写。我怎样才能让它不区分大小写???

@require_http_methods(['POST'])
def search(request):
    res_todos = []
    search = request.POST['search']
    if len(search) == 0:
        return render(request, 'todo.html', {'todos':[]})
    for i in list(Persons.objects.values()):
        if search in i['title']:
            res_todos.append(i)
    return render(request, 'todo.html', {'todos': res_todos})

您可以让数据库为您完成工作,从而过滤:

@require_http_methods(['POST'])
def search(request):
    search = request.POST['search']
    qs = Persons.objects.none()
    if search:
        qs = Persons.objects.filter(<strong>title__icontains=search</strong>)
    return render(request, 'todo.html', {'todos': qs})

通常使用查询进行搜索,使用 GET 请求而不是 POST 请求。


Note: normally a Django model is given a singular name, so Person instead of Persons.