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