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.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"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user