Форум сайта python.su
Доброго времени суток!
Не могу сообразить как подобное реализовывается в Джанго.
Есть базовый шаблон, в его разметке есть место куда необходимо выводить определенные данные из БД (в моем примере это футбольные матчи, которые по дате ближайшие к текущему дню), т.е. в данный момент времени на всех страницах эти данные будут одни и те же. Ни в каждой же вьюхе передовать еще и эти данные.
P.S. Django только изучаю (около месяца)
Офлайн
context proccesor
{% include %} in templates
inclusion-tags -> https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#inclusion-tags
Офлайн
Правильно ли я понял:
я создаю шаблон для тэга, , ну что-то типа такого
#results.html
{% for result in res_match %} <div>{{ result.datetime }}</div> <div>{{ result.home }} {{result.home_g }} : {{ result.guest_g }} {{ result.guest }} {% endfor %}
from django.core import template register=template.Library() @register.inclusion_tag('results.html') def results(): ........ return {'res_match': ......}
Отредактировано tol_drew (Окт. 8, 2014 10:36:58)
Офлайн
Тут есть все, что вам нужно http://djbook.ru/rel1.6/howto/custom-template-tags.html
Можно еще так вставлять (только res_match придется от каждой вьюхи передавать):
{% include "results.html" %}
Офлайн
common values on every page django
Офлайн
сделал так как описал выше, но ничего не выводится. Есть подозрение, что не верно указан путь до шаблона тега.
У меня такая структура каталогов
mysite
–templates
—- index.html (базовый шаблон)
—- results.html (шаблон тега)
—- другие шаблоны
–futsal
—- файлы приложения: модели, вьюхи и т.п.
—- templatetags
—— __init__.py
—— result.py
Каким должен быть путь тут:
# results.py @register.inclusion_tag('results.html') def results():
Офлайн
Разобрался забыл вызвать {% load results %}
Офлайн