From 1e3dfedfc4778879917970bf125c51947c367f94 Mon Sep 17 00:00:00 2001 From: Matt Lenc Date: Wed, 18 Jun 2014 11:14:24 +0100 Subject: Add support for Python3 --- wkhtmltopdf/views.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'wkhtmltopdf/views.py') diff --git a/wkhtmltopdf/views.py b/wkhtmltopdf/views.py index 5a46490..92e2d0f 100644 --- a/wkhtmltopdf/views.py +++ b/wkhtmltopdf/views.py @@ -5,7 +5,6 @@ from tempfile import NamedTemporaryFile from django.conf import settings from django.http import HttpResponse from django.template.response import TemplateResponse -from django.utils.encoding import smart_str from django.views.generic import TemplateView from .utils import (content_disposition_filename, make_absolute_paths, @@ -74,15 +73,21 @@ class PDFTemplateResponse(TemplateResponse, PDFResponse): context = self.resolve_context(self.context_data) - content = smart_str(template.render(context)) + content = template.render(context) content = make_absolute_paths(content) - tempfile = NamedTemporaryFile(mode=mode, bufsize=bufsize, - suffix=suffix, prefix=prefix, - dir=dir, delete=delete) + try: + tempfile = NamedTemporaryFile(mode=mode, bufsize=bufsize, + suffix=suffix, prefix=prefix, + dir=dir, delete=delete) + except TypeError: + # Python 3 has 'buffering' arg for 'NamedTemporaryFile' class + tempfile = NamedTemporaryFile(mode=mode, buffering=bufsize, + suffix=suffix, prefix=prefix, + dir=dir, delete=delete) try: - tempfile.write(content) + tempfile.write(content.encode('utf-8')) tempfile.flush() return tempfile except: -- cgit v1.2.3 From c66222e8d649ef3d10ca679921c4c6ce8793cddd Mon Sep 17 00:00:00 2001 From: Matt Lenc Date: Wed, 18 Jun 2014 17:11:38 +0100 Subject: First try py3k then fall back to python2 --- wkhtmltopdf/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'wkhtmltopdf/views.py') diff --git a/wkhtmltopdf/views.py b/wkhtmltopdf/views.py index 92e2d0f..1c57869 100644 --- a/wkhtmltopdf/views.py +++ b/wkhtmltopdf/views.py @@ -77,12 +77,12 @@ class PDFTemplateResponse(TemplateResponse, PDFResponse): content = make_absolute_paths(content) try: - tempfile = NamedTemporaryFile(mode=mode, bufsize=bufsize, + # Python3 has 'buffering' arg instead of 'bufsize' + tempfile = NamedTemporaryFile(mode=mode, buffering=bufsize, suffix=suffix, prefix=prefix, dir=dir, delete=delete) except TypeError: - # Python 3 has 'buffering' arg for 'NamedTemporaryFile' class - tempfile = NamedTemporaryFile(mode=mode, buffering=bufsize, + tempfile = NamedTemporaryFile(mode=mode, bufsize=bufsize, suffix=suffix, prefix=prefix, dir=dir, delete=delete) -- cgit v1.2.3 From 301bef0d6931582583a156b3195b8b13f54d2875 Mon Sep 17 00:00:00 2001 From: Matt Lenc Date: Thu, 19 Jun 2014 11:26:05 +0100 Subject: Bring back the test assert for title in content --- wkhtmltopdf/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'wkhtmltopdf/views.py') diff --git a/wkhtmltopdf/views.py b/wkhtmltopdf/views.py index 1c57869..2f1945d 100644 --- a/wkhtmltopdf/views.py +++ b/wkhtmltopdf/views.py @@ -5,6 +5,7 @@ from tempfile import NamedTemporaryFile from django.conf import settings from django.http import HttpResponse from django.template.response import TemplateResponse +from django.utils.encoding import smart_str from django.views.generic import TemplateView from .utils import (content_disposition_filename, make_absolute_paths, @@ -73,7 +74,7 @@ class PDFTemplateResponse(TemplateResponse, PDFResponse): context = self.resolve_context(self.context_data) - content = template.render(context) + content = smart_str(template.render(context)) content = make_absolute_paths(content) try: -- cgit v1.2.3