Fix template response compatibility
This commit is contained in:
@@ -15,6 +15,18 @@ class MyJinjaTemplates(Jinja2Templates):
|
|||||||
self.env.add_extension('jinja2.ext.do')
|
self.env.add_extension('jinja2.ext.do')
|
||||||
self.env.globals['now'] = datetime.now # Add 'now' function
|
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
|
# Create templates object that can be imported elsewhere
|
||||||
templates = MyJinjaTemplates(directory=str(BASE_DIR / "templates"))
|
templates = MyJinjaTemplates(directory=str(BASE_DIR / "templates"))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user