Я вот снова поначитался, что шаблонизатор Jinja2 в разы быстрее стандартного шаблонизатора Django, что стоит на него переходить, и я действительно решил попробовать сделать переход на него. Установил Jinja2, в settings изменил настройки по инструкции:
{ 'NAME': 'jinja2', 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'environment': 'ParadoxPortal.jinja2.environment', 'autoescape': False, } },
from django.templatetags.static import static from django.urls import reverse from jinja2 import Environment def environment(**options): env = Environment(**options) env.globals.update({ 'static': static, 'url': reverse, ................., ................., }) return env
которое и указал в настройках settings.
И все в общем то неплохо, все работает, шаблоны переделываю.
Но возник такой вопрос… Для шаблонов у меня используется довольно много функций, которые нужно добавлять в начальные настройки окружения, в globals, при этом многие функция используются все-то лишь в одном представлении. Возможно ли добавлять некоторые функции в globals непосредственно в самом представлении, перед его отображением, чтобы не загружать сразу Jinja целой кучей функций? Ведь этот environment шаблонизатора Jinja2 должен где-то храниться, ну так можно ли до него добраться как-нибудь уже после загрузки настроек Django и внести в него изменения?