Большинство обучающих программ, которые я нашел, были посвящены созданию API-интерфейсов, а не использованию существующих. Я знаю, что упускаю какую-то важную важную вещь. Не могли бы вы указать мне на это?
Я хочу получать от API OMDB несколько обращений после публикации заголовка для поиска. Мой текущий код в views.py выглядит так:
class MoviesList(APIView):
def get(self, APIView):
movies = Movie.objects.all()
serializer = MovieSerializer(movies, many=True)
return Response(serializer.data)
def post(self, request):
title = request.POST.get("Title")
api_key = "111111"
url = f"http://www.omdbapi.com/?t={title}&type=movie&apikey={api_key}"
response = requests.get(url)
serializer = MovieSerializer(data=response.json())
if serializer.is_valid():
serializer.save()
movie_details = {
'title': response.json()['Title'],
'genre': response.json()['Genre'],
'plot': response.json()['Plot'],
'year': response.json()['Year'],
'runtime': response.json()['Runtime'],
}
return render(request, 'movie_database/results.html', movie_details)
else:
print(serializer.errors)
print("Something went wrong.")
И он работает. С помощью этого кода я получаю один результат и могу передать его в свой шаблон. И используйте такие значения, как «title» и «genre».
Но я знаю, что, изменив «url» t = {title} на s = {title}, я могу получить 10 результатов (я тестировал его в браузере вручную, и он работает).
РЕДАКТИРОВАТЬ:
Когда я меняю эту букву «t» на «s», я получаю эту ошибку:
AssertionError at /MoviesList/
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
Как я можно использовать это и l oop через них в моем шаблоне? После того, как я искал ответ более 1 часа, я знаю, что мой подход basi c неверен, но я не могу найти подходящий прямо сейчас.
Спасибо.