Форум сайта python.su
Товарищи, подскажите, поддерживает ли шаблонизатор Django формулы в темплейтах?
К примеру, у меня есть подстановка {{var}}, а нужно что-то типа {{var - 10}} Есть ли возможность подобное сделать?
Офлайн
Ты не хочешь использовать шаблоны Django
Ты хочешь использовать шаблоны jinja2
Офлайн
oleg.pПо сути: Если очень простые формулы, то желаемого можно добиться посредством встроенного фильтра add:
Товарищи, подскажите, поддерживает ли шаблонизатор Django формулы в темплейтах?
Офлайн
scidam, спасибо, это как раз то, что нужно.
FishHook, спасибо, принял к сведению. Если в будущем будет не хватать, изучу предложенную тему.
Офлайн
Поковырявшись несколько часов с переменными в шаблонах django, все же пришел к выводу, что функционала катастрофически не хватает.
Поэтому, после прочтения небольшой доки по возможностям jinja2, решил использовать это решение в качестве шаблонизатора.
Установил и настроил все, как описано здесь http://niwinz.github.io/django-jinja/latest/ в разделе Quick Start (за исключением лишь того, что поставил jinja2 через apt, а не через pip), то есть:
1. sudo apt install python3-jinja2
2. в settings.py добавил:
- в раздел INSTALLED_APPS:
'django_jinja“',
- в раздел TEMPLATES:
{
”BACKEND“: ”django_jinja.backend.Jinja2“,
”APP_DIRS“: True,
”OPTIONS“: {
”match_extension“: ”.jinja",
}
},
(при этом настройки, относящиеся к бакэнду django из TEMPLATES не удалял )
И… ничего не работает… точнее работает, но инструкции для jinja2 в шаблоне не распознаются.
Подскажите, что сделал не так? Или посоветуйте хороший мануал, где внятно написано, как привязать jinja к django.
Отредактировано oleg.p (Март 2, 2017 05:32:26)
Офлайн
oleg.pДжанго давно уже поддерживает jinja самостоятельно, без опорок и костылей.
Установил и настроил все, как описано здесь http://niwinz.github.io/django-jinja/latest/
Офлайн
Вот заготовка с работающей jinja, настроить только БД.
Прикреплённый файлы:
test_django.zip (15,7 KБ)
Офлайн
FishHook
Вот заготовка с работающей jinja, настроить только БД.
from django.shortcuts import render from django.http import HttpResponse from django.template.loader import render_to_string def index(request): context = { 'text': "Hello World!", } return HttpResponse(render_to_string('index.html', context))
Отредактировано oleg.p (Март 3, 2017 02:45:18)
Офлайн
oleg.pПоказывайте ошибку, а я же не для вас персонально запилил заготовку, наверняка кому-то еще пригодится.
и… не заработало
oleg.pНу, что я вам скажу. Используйте и дальше. Видимо вам еще многому нужно учиться и отходить от мануала сейчас вам не нужно. Так что забудьте пока про jinja, вместо этого пилите кастомные фильтры и теги, как того требует фреймворк.
Сейчас использую популярную схему
Офлайн
FishHook
Видимо вам еще многому нужно учиться и отходить от мануала сейчас вам не нужно. Так что забудьте пока про jinja, вместо этого пилите кастомные фильтры и теги, как того требует фреймворк.
Офлайн