@Gelyano

Как отобразить картинку на сайте полученную GET-запросом?

Делаю GET-запрос к 1с на получение товаров вместе с картинками. (запрос с авторизацией)
class GetAndSaveProductData(APIView):
    def get(self, request):
        try:
            url = "https://212.19.12.107/stm/hs/site/get-stocks"

            payload = {}
            headers = {
                'Authorization': 'Basic name/password'
            }

            response = requests.request("GET", url, headers=headers, data=payload, verify=False)

Получаю данные:
{
"product_guid": "f949bc40-3552-11ed-bfd9-a497b156a51c",
"product_name": "Сальник к/в передний 6D155-4 100x125x23",
"product_articul": "6127-21-3510",
"product_type": "Запчасть",
"product_OEM": "AW4069E, OS36000",
"img_link_preview": "https://212.19.12.107/stm/hs/site/get-pictures/ЦБ-..."
},
Картинка передается соответственно в виде ссылки https://212.19.12.107/stm/hs/site/get-pictures/ЦБ-... и записываю это дело в базу данных:
if response.status_code == 200:
                data = response.json()
                for item in data:
                    product_guid = item.get('product_guid')
                    if product_guid:
                        # Попытка найти товар по product_guid
                        try:
                            product = Product.objects.get(product_guid=product_guid)
                        except Product.DoesNotExist:
                            product = None

                        if product is not None:
                            # Если товар существует, обновляем его данные
                            product.product_type = item['product_type']
                            product.product_name = item['product_name']
                            product.product_articul = item['product_articul']
                            product.product_OEM = item['product_OEM']
                            product.img_link_preview = item.get('img_link_preview', '/static/main/img/fon.jpg')
                        else:
                            # Если товар не существует, создаем новый
                            product = Product(
                                product_guid=product_guid,
                                product_type=item['product_type'],
                                product_name=item['product_name'],
                                product_articul=item['product_articul'],
                                product_OEM=item['product_OEM'],
                                img_link_preview=item.get('img_link_preview', '/static/main/img/fon.jpg')
                            )

                        product.save()

Как мне отобразить картинку на сайте?, если в итоге в базе данных у меня получается ссылка которая в свою очередь так-же требует авторизацию при переходе...
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 2
@aleks-th
Если у тебя картинка по ссылке отдается, то очевидно, что необходим доступ по этой ссылке к этой картинке, в данном случае нужна авторизация.

Вариант второй загружать изображение на сервер и потом с него отдавать.

У тебя как изображение сохраняется в базу ?
Или просто ссылка сохраняется ?
Ответ написан
@Gelyano Автор вопроса
В базу сохраняется ссылка. Получается я потом передаю её в шаблон так же ссылкой и соответственно картинка не отображается так как при переходе по ссылке фреймворк утыкается в авторизацию. Я вот и не могу понять как мне запихнуть авторизацию между получением картинки по get запросом и передачей в шаблон, или между передачей в шаблон и отображением...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы