Speeding up with cache
This commit is contained in:
parent
a1a55864d2
commit
cb237826b9
1 changed files with 11 additions and 8 deletions
|
@ -1,5 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from functools import lru_cache
|
||||
from typing import Any
|
||||
|
||||
from django.forms.boundfield import BoundField
|
||||
|
@ -18,6 +19,13 @@ from ktools.django.jinja.backend import KtoolsJinjaBackend
|
|||
_k_jinja_backend: KtoolsJinjaBackend
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def _get_template(template_name: str) -> Template:
|
||||
'Return (and cache) a `Template` to render.'
|
||||
return _k_jinja_backend.get_template(
|
||||
template_name=template_name) # pyright: ignore[reportReturnType]
|
||||
|
||||
|
||||
@pass_context
|
||||
def ktools_render_messages(
|
||||
context: Context, request: HttpRequest, variant: str = 'bootstrap5-v1'
|
||||
|
@ -25,9 +33,8 @@ def ktools_render_messages(
|
|||
'Rendering a HTML message in various formats from ktools templates.'
|
||||
match variant:
|
||||
case 'bootstrap5-v1':
|
||||
template = _k_jinja_backend.get_template(
|
||||
template_name=(
|
||||
'ktools/render-content/messages-bootstrap5-v1.html.jinja'))
|
||||
template = _get_template(template_name=(
|
||||
'ktools/render-content/messages-bootstrap5-v1.html.jinja'))
|
||||
return template.render(context=context, request=request)
|
||||
case _:
|
||||
raise TemplateNotFound(
|
||||
|
@ -80,14 +87,10 @@ class KTemplatesSetting(BaseRenderer):
|
|||
Add the `_KBoundField` back to the context so that the template
|
||||
can use it.
|
||||
"""
|
||||
template = self.get_template(template_name)
|
||||
template = _get_template(template_name=template_name)
|
||||
context['_k_boundfield'] = self._k_boundfield
|
||||
return template.render(context=context, request=request).strip()
|
||||
|
||||
def get_template(self, template_name: str) -> Template:
|
||||
'Find our templates faster.'
|
||||
return _k_jinja_backend.get_template(template_name=template_name)
|
||||
|
||||
|
||||
class _KBoundField(BoundField):
|
||||
|
||||
|
|
Loading…
Reference in a new issue