Make template rendering compatible across Starlette versions

This commit is contained in:
Krikorios
2026-05-07 13:05:24 +03:00
parent aed2fdc801
commit 68d13dbf57
6 changed files with 71 additions and 37 deletions
+13
View File
@@ -0,0 +1,13 @@
import inspect
from collections.abc import Mapping
def render_template(templates, request, template_name: str, context: Mapping | None = None, **response_kwargs):
context_dict = dict(context or {})
parameters = list(inspect.signature(templates.TemplateResponse).parameters)
if parameters and parameters[0] == "request":
return templates.TemplateResponse(request, template_name, context_dict, **response_kwargs)
context_dict.setdefault("request", request)
return templates.TemplateResponse(template_name, context_dict, **response_kwargs)