Make template rendering compatible across Starlette versions
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user