You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BillManager/template_helper.py

20 lines
713 B

"""
Helper pour injecter automatiquement current_user dans le contexte Jinja2.
"""
from fastapi import Request
from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse
def render(templates: Jinja2Templates, template_name: str,
request: Request, context: dict = None,
status_code: int = 200) -> HTMLResponse:
ctx = context or {}
ctx["request"] = request
if "current_user" not in ctx:
ctx["current_user"] = getattr(request.state, "current_user", None)
# Compatible avec toutes les versions de Starlette/FastAPI
response = templates.TemplateResponse(template_name, ctx)
response.status_code = status_code
return response