невозможно применить поиск по нескольким полям Django - PullRequest
0 голосов
/ 15 октября 2019
def search(request):
  if request.method == 'POST':
    srch = request.POST['title']
    if srch:
      match = Post.objects.filter(title__icontains=srch,email__icontains=srch)
      # match = Post.objects.annotate(search=SearchVector('title', 'email'),).filter(search=srch)
      if match:
        return render(request,'post/index.html',{'sr':match})
      else:
        messages.add_message(request,messages.INFO,' No result found ')
    else:
      return redirect('post')
  return render(request,"post/index.html")

1 Ответ

2 голосов
/ 15 октября 2019

Для ИЛИ условие

match = Post.objects.filter(Q(title__icontains=srch) | Q(email__icontains=srch))

Для И условие

match = Post.objects.filter(Q(title__icontains=srch) & Q(email__icontains=srch))

Я думаю, что лучше использовать запрос GET вместоPOST запрос на поиск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...