Fix template response compatibility

This commit is contained in:
Christian Krakau-Louis
2026-05-22 15:39:33 +02:00
parent 376d0b822d
commit e032994628
+12
View File
@@ -15,6 +15,18 @@ class MyJinjaTemplates(Jinja2Templates):
self.env.add_extension('jinja2.ext.do')
self.env.globals['now'] = datetime.now # Add 'now' function
def TemplateResponse(self, *args: Any, **kwargs: Any) -> _TemplateResponse:
"""Support existing pre-Starlette 0.29 TemplateResponse calls."""
if args and isinstance(args[0], str):
name = args[0]
context = args[1] if len(args) > 1 else kwargs.pop("context", {})
request = context.get("request") if isinstance(context, dict) else None
if request is None:
raise ValueError("TemplateResponse context must include request")
return super().TemplateResponse(request, name, context, *args[2:], **kwargs)
return super().TemplateResponse(*args, **kwargs)
# Create templates object that can be imported elsewhere
templates = MyJinjaTemplates(directory=str(BASE_DIR / "templates"))