Как показать изображения с s3? - PullRequest
0 голосов
/ 20 февраля 2020

Я заканчиваю приложение django, которое генерирует pdf-сертификаты, оно прекрасно работало, прежде чем я запустил его в heroke и настроил S3 amazom для размещения stati c файлов. У меня есть html с шаблоном сертификата, и с помощью HTML2PDF я отображаю его в формате PDF. Но он не показывает фон css, он работает только в теге

Странно, что если мы откроем URL-адрес изображения в s3 amazom, он отлично отобразится

здесь, шаблон css часть

        <meta charset="utf-8" />
        {% load static %}
        <style type="text/css">
                @page {
                    size: 1122.52px 1587.4px ;
                    /*size: A4 landscape;*/
                    margin: 0cm;
                    background-image: url({{bg_front}});
                    height: 1588;
                }
        </style>

Мой взгляд:

class ViewPDF(View):

def get(self, request, *args, **kwargs):
    data = {}
    pdf = True
    if kwargs['pk']:
        try:                    
            participant = Participant.objects.get(pk=kwargs['pk'])
            print(participant.cpf)
            if participant.name:
                certificate = Certificate.objects.get(pk=participant.certificate.pk)

                pathBack = str(certificate.template.template_back.url)

                pathFront = str(certificate.template.template_front.url)
                print(pathFront)
                #
                # CONFIGURA OS BACKGROUNDS E TEXTO
                #
                data['bg_front'] = pathFront
                data['bg_back'] = pathBack
                setting = certificate.template.settings         
                start_date = datetime.strftime(certificate.start_date,'%d/%m/%Y')
                end_date = datetime.strftime(certificate.start_date,'%d/%m/%Y')
                data['text_front'] = setting.replace('<<nome>>',participant.name).replace('<<cpf>>',str(participant.cpf)).replace('<<ch>>',str(certificate.ch)).replace('<<instituicao>>',str(certificate.institution)).replace('<<DataInicio>>',start_date).replace('<<DataFim>>',end_date)
                data['cpf'] = participant.cpf
            pdf = render_to_pdf('app_certificates/body_front_pdf.html', data)
            return HttpResponse(pdf, content_type='application/pdf')
except TypeError as e:
    return HttpResponse(e)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...