Как я могу решить эту проблему с окном поиска книг в django?
Я работаю с django, создавая поисковик книг, вот мой код, я использую видео с youtube для создания этого проекта, я сделал точно так же как он, но это не работает.
views.py:
def books(request):
if request.method == 'POST':
form = DashboardForm(request.POST)
text = request.POST['text']
url = 'https://www.googleapis.com/books/v1/volumes?q='+text
r = requests.get(url)
answer = r.json()
result_list = []
for i in range(10):
result_dict = {
'title':answer['items'][i]['volumeInfo']['title'],
'subtitle':answer['items'][i]['volumeInfo'].get('subtitle'),
'description':answer['items'][i]['volumeInfo'].get('description'),
'count':answer['items'][i]['volumeInfo'].get('pageCount'),
'catagories':answer['items'][i]['volumeInfo'].get('catagories'),
'rating':answer['items'][i]['volumeInfo'].get('pageRating'),
'thumbnail':answer['items'][i]['volumeInfo'].get('imageLinks').get('thumbnail'),
'preview':answer['items'][i]['volumeInfo'].get('previewLink')
}
result_list.append(result_dict)
context={
'form':form,
'result':result_list,
}
return render(request,'dashboard/books.html',context)
else:
form = DashboardForm()
context = {'form':form}
return render(request,'dashboard/books.html',context)
forms.py:
class DashboardForm(forms.Form):
text = forms.CharField(max_length=100,label='Enter your search : ')
books.html:
{% extends 'dashboard/base.html' %}
{% load static %}
{% block content %}
<section class='text-center container'>
<h2>Search books and browse your favorite</h2>
<p>just enter the search query to obtain the results</p><b></b>
<form action="" method="post">
{% csrf_token %}
{{form}}
<input class="btn btn-danger" type="submit" value="Submit">
</form><br>
<a href="#" target="_blank">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col-md-3">
<img class="img-fluid" src="" alt="">
</div>
<div class="col-md-9">
<h3 class="p-0 m-0">title</h3>
<b>
<u>
<h5 class="p-0 m-0">subtitle</h5>
</u>
</b>
<h6 class="p-0 m-1">description</h6>
<b>
<h6 class="ml-0 mt-3">Category: name</h6>
<h6 class="ml-0 mt-1">Pages: 100</h6>
<h6 class="ml-0 mt-1">Rating: 4</h6>
</b>
</div>
</div>
</div>
</div>
</a>
<br>
</section>
{% endblock content %}
на самом деле, когда я добавляю {{form}}
в мой books.html, он должен сделать окно поиска, но он не делает, во-вторых, когда я использую {{form.as_p}}
я вижу окно, но когда я ищу что-то, возникает ошибка:
>>> ExceptionError: 'text'
Я должен сказать, что в forms.py этот класс DashboardForm()
, это то, что он использует для поиска на youtube, поиска книг и словаря.
Я не знаю, что на самом деле