Я пытаюсь отобразить все книги из API Google на основе переданного значения, а затем вставить их в базу данных. Я не могу представить, как передать значение классу, ответственному за получение ответа. Решение, которое в настоящее время я пытаюсь использовать, это dajn go формы. Ниже приведен фрагмент моего кода.
просмотров:
class GoogleImportBook(FormView):
model = Book
form_class = GoogleImportForm
template_name = "API/search_for_book.html"
success_url = reverse_lazy("books_api")
def book_search(self, value):
param = {"q":value, "key":settings.API_KEY}
api_url = "https://www.googleapis.com/books/v1/volumes"
response = requests.get(url=api_url, params=param)
items = response.json()["items"]
for item in items:
print(item["volumeInfo"]["title"])
forms.py
class GoogleImportForm(forms.Form):
q = forms.CharField()
class Meta:
model = Book
fields=["q"]
models.py
class Book(models.Model):
title = models.CharField(max_length=100)
publication_date = models.CharField(max_length=11)
authors = models.ManyToManyField("Author", related_name="author")
ISBN = ISBNField()
pages = models.IntegerField(blank=True)
language = models.CharField(max_length=4)
def __str__(self):
return self.title
def get_all_authors(self):
return "".join([x.name +", " for x in self.authors.all()])[:-2]
class Meta:
ordering = ["title"]
I Предположим, что использование обычных форм django не является хорошей практикой для работы с REST в django.