Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 27, 2017 16:07:06

oleg.p
Зарегистрирован: 2017-02-03
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Формулы в темплейтах

Товарищи, подскажите, поддерживает ли шаблонизатор Django формулы в темплейтах?

К примеру, у меня есть подстановка {{var}}, а нужно что-то типа {{var - 10}} Есть ли возможность подобное сделать?

Офлайн

#2 Фев. 27, 2017 17:25:33

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Формулы в темплейтах



Ты не хочешь использовать шаблоны Django




Ты хочешь использовать шаблоны jinja2







Офлайн

#3 Фев. 28, 2017 02:16:25

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Формулы в темплейтах

oleg.p
Товарищи, подскажите, поддерживает ли шаблонизатор Django формулы в темплейтах?
По сути: Если очень простые формулы, то желаемого можно добиться посредством встроенного фильтра add:
{{var|add:“4”}}, т.е. если var было 3, то результат будет 7. Но, если что-то более сложное, ответ в посте FishHook.

Офлайн

#4 Март 2, 2017 03:03:34

oleg.p
Зарегистрирован: 2017-02-03
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Формулы в темплейтах

scidam, спасибо, это как раз то, что нужно.

FishHook, спасибо, принял к сведению. Если в будущем будет не хватать, изучу предложенную тему.

Офлайн

#5 Март 2, 2017 05:26:49

oleg.p
Зарегистрирован: 2017-02-03
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Формулы в темплейтах

Поковырявшись несколько часов с переменными в шаблонах 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)

Офлайн

#6 Март 2, 2017 05:35:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Формулы в темплейтах

oleg.p
Установил и настроил все, как описано здесь http://niwinz.github.io/django-jinja/latest/
Джанго давно уже поддерживает jinja самостоятельно, без опорок и костылей.
Внимательно прочитать



Офлайн

#7 Март 2, 2017 05:59:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Формулы в темплейтах

Вот заготовка с работающей jinja, настроить только БД.



Прикреплённый файлы:
attachment test_django.zip (15,7 KБ)

Офлайн

#8 Март 3, 2017 02:43:47

oleg.p
Зарегистрирован: 2017-02-03
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Формулы в темплейтах

FishHook
Вот заготовка с работающей jinja, настроить только БД.

Спасибо за пример. Но попробовал сделать как там и… не заработало.
Настройки в settings.py в принципе понятны, однако конструкция в views.py меня ввела в недоумение, на данном жизненном этапе она явно выше моего понимания.

Сейчас использую популярную схему вывода в шаблон через render_to_string:

 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))

Может подскажите, что здесь надо поменять, чтоб наконец-то заработал jinja2 ?

Отредактировано oleg.p (Март 3, 2017 02:45:18)

Офлайн

#9 Март 3, 2017 05:35:09

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Формулы в темплейтах

oleg.p
и… не заработало
Показывайте ошибку, а я же не для вас персонально запилил заготовку, наверняка кому-то еще пригодится.

oleg.p
Сейчас использую популярную схему
Ну, что я вам скажу. Используйте и дальше. Видимо вам еще многому нужно учиться и отходить от мануала сейчас вам не нужно. Так что забудьте пока про jinja, вместо этого пилите кастомные фильтры и теги, как того требует фреймворк.



Офлайн

#10 Март 3, 2017 09:50:48

oleg.p
Зарегистрирован: 2017-02-03
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Формулы в темплейтах

FishHook
Видимо вам еще многому нужно учиться и отходить от мануала сейчас вам не нужно. Так что забудьте пока про jinja, вместо этого пилите кастомные фильтры и теги, как того требует фреймворк.

Я разве отрицаю? Конечно же многому надо учиться, ведь джангой всего 2 недели занимаюсь, и пока много чего не понятно. Ну и как следствие, хотелось бы иметь какие-то простые примеры, в которые можно было бы сходу вьехать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version