Как отобразить изображение из внешнего API как часть ответа в Django

У меня есть внешний API, который возвращает изображения, и для доступа к нему требуется закрытый ключ. Тип содержимого, который он возвращает, - 'image/jpeg'.

Я создаю API с помощью Django Rest Framework, который использует этот API. У меня также есть модель с некоторыми основными записями char, и я хочу возвращать как эти записи модели, так и изображение в ответе, с целью выполнения AJAX вызовов к нему в JS и отображения данных и изображения в HTML.

Я не совсем уверен, нужно ли мне использовать Django forms? или я могу просто сделать вызов API в обычном js файле, размещенном в моем проекте? Последнее было бы идеально, если бы я мог отправить изображение как часть ответа... но, конечно, я не хочу раскрывать ключ API, который является частью URL, по которому я делаю запрос для получения изображения. Я просто хочу загрузить изображение и отправить его в качестве ответа.

Вот текущий код, который я тестировал:

@api_view(['GET'])
def random_image(request):

    response = requests.get('api url with secret key')

    if request.method == 'GET':
        return HttpResponse(response, content_type="image/jpeg")

Я могу получить ответ изображения и увидеть его, когда я делаю GET запрос к url в postman, однако в Chrome я получаю ошибку 500 сервера.

Просто изменить

HttpResponse(response, ...)

To

HttpResponse(response.content, ...)

Должен решить ваш вопрос, мой друг

Вернуться на верх