将搜索结果链接到自己的详细信息页面



这是一个与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文件**

到目前为止,当你点击一个帖子时,它会带你进入详细的搜索结果页面,上面没有任何内容

这是因为您已经将每个职位发布超链接到/detailed-search-results/。查看API响应,需要将其更改为job.url

将for循环替换为:

{% 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 %}

最新更新