Как сделать набор запросов с помощью оператора «или» - PullRequest
0 голосов
/ 26 октября 2018

У меня есть образец статьи, в статье у меня есть заголовок и статья

У меня есть функция поиска, и какой бы тип поиска не вывел мне все статьи, в которых есть текст для поиска в заголовке или статье

def searh(request):
    print(request.POST)
    kw = request.POST['search']
    articles = Article.objects.filter(title__contains=kw).filter(article__contains=kw)
    context = {'News':articles}
    return render(request, 'menu/search_results.html', context )

по этому запросу не является точным, не возвращает мне if в обоих

как это структурировать?

  articles = Article.objects.filter(title__contains=kw).filter(article__contains=kw)

Моя поисковая форма

            <form method="POST" class="search-box" action="{% url 'search' %}">
                {% csrf_token %}
                <input  class="site-search" type="text" placeholder="{% trans 'Търси..' %}" name="search">
                <button type="submit"><i class="fa fa-search"></i></button>
            </form>

1 Ответ

0 голосов
/ 26 октября 2018

На мой взгляд, вы должны использовать:

from django.db.models import Q

def search(request):
    kw = request.POST.get('search')
    articles = Article.objects.filter(Q(title__contains=kw) | Q(article__contains=kw))
    context = {'News':articles}
    return render(request, 'menu/search_results.html', context )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...