render_template() returns rendered string, not Response

This commit is contained in:
Simon Willison 2020-02-04 08:35:52 -08:00
commit 5d1b424cfc
2 changed files with 12 additions and 13 deletions

View file

@ -591,13 +591,7 @@ class Datasette:
},
**extra_template_vars,
}
if request.args.get("_context") and self.config("template_debug"):
return Response.html(
"<pre>{}</pre>".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:

View file

@ -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(
"<pre>{}</pre>".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):