From 5d1b424cfcfd1632e40e00cb98463ff5636695ff Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Tue, 4 Feb 2020 08:35:52 -0800 Subject: [PATCH] render_template() returns rendered string, not Response --- datasette/app.py | 8 +------- datasette/views/base.py | 17 +++++++++++------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/datasette/app.py b/datasette/app.py index 4db64c35..4b09b7d1 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -591,13 +591,7 @@ class Datasette: }, **extra_template_vars, } - if request.args.get("_context") and self.config("template_debug"): - return Response.html( - "
{}
".format( - escape(json.dumps(template_context, default=repr, indent=4)) - ) - ) - return Response.html(await template.render_async(template_context)) + return await template.render_async(template_context) def _asset_urls(self, key, template, context): # Flatten list-of-lists from plugins: diff --git a/datasette/views/base.py b/datasette/views/base.py index 4ac11247..32e6fdda 100644 --- a/datasette/views/base.py +++ b/datasette/views/base.py @@ -74,17 +74,22 @@ class BaseView(AsgiView): async def render(self, templates, request, context): template = self.ds.jinja_env.select_template(templates) - return await self.ds.render_template( - template, - { + template_context = { **context, **{ "database_url": self.database_url, "database_color": self.database_color, }, - }, - request=request, - ) + } + if request and request.args.get("_context") and self.config("template_debug"): + return Response.html( + "
{}
".format( + escape(json.dumps(template_context, default=repr, indent=4)) + ) + ) + return Response.html(await self.ds.render_template( + template, template_context, request=request + )) class DataView(BaseView):