0
我最近推出了一个简单的搜索到我正在处理的Django应用程序。搜索过滤器下面的模型的索引:使用多个字段进行搜索Django(构建对象列表)
class Task(models.Model):
task_name = models.CharField(max_length=140)
task_description = models.TextField()
category = models.CharField(max_length=140)
并执行如下:
查看:
def ViewAllTasks(request):
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
tasks_list = task.objects.filter(task_name__contains=q)
else:
tasks_list = task.objects.all().order_by("task_name")
模板/ HTML:
<div class="col-lg-2">
<form action="/tasks" method="get">
<input type="text" name="q">
<input type="submit" value="Search">
</form>
</div>
目前这个搜索在任务名称上并返回所有任务,如果没有搜索到任何东西。但是,我想扩展搜索范围,以便在描述和类别中进行搜索,并且无法尝试在多个对象上定义过滤器。我已经尝试了包括以下内容的所有内容:
tasks_list = task.objects.filter(~Q(task_name__contains=q) + ~Q(task_description__contains=q) + ~Q(category__contains=q))
我想在此处找到重叠部分。
真是个好的答案!谢谢! – NickP