Django: Проблема рендеринга и загрузки HTML в формате PDF, стили и ресурсы применяются некорректно
Я пытаюсь сгенерировать PDF с данными, ранее введенными в Django, основа PDF - HTML, при создании HTML он отображается в порядке и как я хочу при просмотре его с помощью расширения ""Live Preview"" в Visual Studio Code, но при преобразовании его в PDF в моем проекте, он генерируется плохо и грязно (извините, если я плохо описал себя, это первый раз, когда я использую эту платформу D:)Идея в том, что это выглядит примерно так: HTML, но когда вы загружаете PDF, он выглядит так: Bad PDF
В качестве ссылки для создания функциональности PDF я использовал это видео: https://www.youtube.com/watch?v=J3MuH6xaDjI, это HTML, который я использую для создания PDF:
и вот виды, если это может быть полезно:
def generate_pdf(request, *args, **kwargs):
# Get the value of 'pk' from the keyword arguments passed to the function
pk = kwargs.get('pk')
# Try to get an Ordenes object with the provided 'pk'
order = get_object_or_404(Ordenes, pk=pk)
# Get the order number from the order object
order_number = order.order_number
# Define the path of the HTML template that will be used to generate the PDF
template_path = 'pdf_quote.html'
# Define the context that will be passed to the template. This context contains the order object
context = {'order': order}
# Create an HTTP response object with the content type set to 'application/pdf'
response = HttpResponse(content_type='application/pdf')
# Set the 'Content-Disposition' header of the response to indicate that the response should be treated as a file to download
response['Content-Disposition'] = f'attachment; filename="quote_{order_number}.pdf"'
# Find the template and render it
template = get_template(template_path)
html = template.render(context)
# Create a PDF
pisa_status = pisa.CreatePDF(
html, dest=response)
# If there is an error, show a view with the error
if pisa_status.err:
return HttpResponse('We had some errors <pre>' + html + '</pre>')
# If everything goes well, return the response with the PDF
return response
Спасибо за внимание.