Как использовать Django для создания панели поиска на домашней странице, а затем перенаправлять на результаты поиска? - PullRequest
1 голос
/ 05 мая 2020

У меня есть панель поиска на моей странице jobs_board. html, которая работает хорошо. Но я хочу добавить эту панель поиска на свою домашнюю страницу, чтобы она выполняла тот же поиск и перенаправляла на страницу jobs_board. html для отображения результатов. Любые предложения о том, как добавить этот дом. html и view.py

Заранее спасибо.

jobs / views.py

def get_jobs_queryset(query=None):
    queryset = []
    queries = query.split(" ")
    for q in queries:
        posts = JobsPost.objects.filter(
            Q(title__contains=q)|
            Q(body__icontains=q)
            ).distinct()
        for post in posts:
            queryset.append(post)



def board_jobs_view(request):

    context = {}

    query = ""
    if request.GET:
        query = request.GET['q']
        context['query'] = str(query)

    jobs_posts = sorted(get_jobs_queryset(query), key=attrgetter('date_updated'), reverse=True)
    context['jobs_posts'] = jobs_posts

    return render(request, "jobs/jobs_board.html", context)

jobs_board. html

<div class="container">
    <div class="center">
            <h1 class="display-4">
            <form method="get">
              <input class="form-control form-control-lg"  type="text" name="q" id="id_q" placeholder="Search Jobs">
            </h1>
    </div>
 </div>

 <script type="text/javascript">
  document.getElementById("id_q").value = "{{query}}"
</script>

1 Ответ

1 голос
/ 05 мая 2020

Вы указываете путь к представлению поиска как атрибут action="&hellip;" в теге <form>:

<form method="get" action="<b>{% url 'board_job_view' %}</b>">
    <input class="form-control form-control-lg"  type="text" name="q" id="id_q" placeholder="Search Jobs">
    <button type="submit">
</form>

Здесь board_job_view - это имя представления, поэтому путь должен выглядеть примерно так:

urlpatterns = [
    # &hellip;,
    path(&hellip; views.board_jobs_view<b>, name='board_jobs_view'</b>)
    # &hellip;,
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...