2

如果我发送与数据库中完全相同的搜索词,则此代码有效。但是,如果我有一个任务“Learn django”,我希望它可以通过“lea”或“djan”搜索字符串找到。

在 Views.py 中:

def filter_tasks(request:HttpRequest):
context = {'task_list' : Task.objects.all().filter(content=request.POST['content'])
}
    return render(request,'tasks/task_list.html', context)

在 HTML 表单中

<form action="{% url 'filter_tasks' %}" method="POST" autocomplete="off">
{% csrf_token %}
<div class="input-group">
<input type="text" class="form-control" name="content"
placeholder="search for tasks">
<div class="input-group-append text-info">
<span class="input-group-text bg-white py-0">
<button type="submit" class="btn btn-sm text-info">
<i class="fa fa-search fa-lg"></i>
</button>

型号:

class Task(models.Model):
    content = models.TextField()
4

1 回答 1

3

使用icontains--(Django doc)查找

def filter_tasks(request: HttpRequest):
    context = {
        'task_list': Task.objects.filter(
            content__icontains=request.POST['content']
        )
    }
    return render(request, 'tasks/task_list.html', context)
于 2020-08-23T03:12:25.063 回答