связывание результатов поиска с собственной страницей подробностей - PullRequest
2 голосов
/ 24 апреля 2020

Это вопрос, связанный с django:

Я выполняю задание, где мы играем вокруг создания панели поиска, а затем позволяем каждому отдельному результату поиска связываться со своей собственной страницей с более подробной информацией. В этом контексте мы занимаемся поиском работы, и мне нужна помощь, когда вы нажимаете на каждую публикацию вакансии, она переносит вас на отдельную страницу с дополнительной информацией о работе. Мы уже сделали шаблоны для всех страниц. Я понимаю, что мы должны снова сделать запрос к API после выполнения его для функции представления в строке поиска, а также использовать шаблоны, заполнив подробные результаты поиска. Я просто не уверен, как бы я применил эти понятия к html файл, который был.

вот код Просмотр кода функции

import requests
from django.shortcuts import render


def home(request):

    context = {
        'example_context_variable': 'Change me.',
    }

    return render(request, 'pages/home.html', context)


def search_results(request):
    search_query = request.GET['searchterm']

    context = {
        'result_count': 0,
        'search_term': search_query,
     }

    context['results_count'] = 0

    url = 'https://jobs.github.com/positions.json?location=bay+area&description='
    url += search_query

    response = requests.get(url)
    results_data = response.json()
    job_list =[]
    for result in results_data:
        job_list.append(result)


    context['job_results'] = job_list


    return render(request, 'pages/search_results.html', context)

Страница результатов поиска

{% extends "base.html" %}

{% block title %}
    Search Results
{% endblock title %}

{% block additional_styles %}
<style>
    body {
        background-color: white;
    }
</style>
{% endblock %}


{% block content %}
<div id="home-content" class="container">
  <div class="row">

      <div class="col-lg-3"></div> <!-- Column for spacing -->

      <div class="col-lg-6">
          <div class="mt-5 mb-3 text-center">
            <h1>Search Results</h1>
          </div>

<form method="GET" action="/search-results/">
  <div class="input-group mb-2">
    <input name="searchterm" type="text" class="form-control form-control-lg" placeholder="Let's find a job..." />
    <div class="input-group-append">
      <button class="btn btn-primary btn-lg">Search</button></a>
  </div>
</div>

</form>

<!-- 2start -->
<p>You Searched for: {{search_term}}</p>
{% for job in job_results %}
<div class="list-group">
  <a href="/detailed-search-results/" class="list-group-item list-group-item-action flex-column align-items-start">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1">{{job.title}}</h5>
    </div>
    <div>
      <small class="text-muted">{{job.location}}</small>
    </div>
  </a> 
</div>
<br>
{% endfor %}
<!-- End -->

{% endblock content %}

** подробные результаты поиска Html файл **

Пока вы нажимаете на публикацию, вы переходите на страницу подробных результатов поиска без чего-либо.

1 Ответ

2 голосов
/ 25 апреля 2020

Это потому, что вы разместили гиперссылку на каждую публикацию задания на /detailed-search-results/. Глядя на ответ API, вам нужно изменить его на job.url

Замените ваш на l oop следующим:

{% for job in job_results %}
<div class="list-group">
  <a href="{{ job.url }}" class="list-group-item list-group-item-action flex-column align-items-start">
    <div class="d-flex w-100 justify-content-between">
      <h5 class="mb-1">{{job.title}}</h5>
    </div>
    <div>
      <small class="text-muted">{{job.location}}</small>
    </div>
  </a> 
</div>
<br>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...