Найти - Пользователи
Полная версия: Request в templates tag
Начало » Django » Request в templates tag
1
PavelIvanov
Гугл говорит, что Request лежит в Context. Регистрирую тэг с параметрами takes_context=True, но Request'а там все равно нет. Смысл в том, что есть повторяющийся элемент (предположим последние новости) и его нужно выводит на страницах шаблона. Но в этом тэге нужно брать значения из сессии. Может все вообще делается иначе и я изобретаю велосипед?
plusplus
Должен быть. Мой пример:

from django import template
register = template.Library()
@register.simple_tag(takes_context=True)
def url_replace(context, field, value):
    request = context['request']
    dict_ = request.GET.copy()
    dict_[field] = value
    return dict_.urlencode()
PavelIvanov
@register.inclusion_tag("shop/elements/test.html", takes_context=True)
def draw_test(context):
	print dir(context)
['__class__', '__contains__', '__copy__', '__delattr__', '__delitem__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__getitem__', '__hash__', '__init__', '__iter__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_current_app', '_reset_dicts', 'autoescape', 'bind_template', 'current_app', 'dicts', 'flatten', 'get', 'has_key', 'is_current_app_set', 'new', 'pop', 'push', 'render_context', 'setdefault', 'template', 'template_name', 'update', 'use_l10n', 'use_tz']
FishHook
PavelIvanov
Забудьте про джанговский шаблонизатор. Он плохой и он не нужен. Джанга уже умеет jinja2, никакие вот эти вот страдания с тегами не нужны, просто вызываете функцию или метод и всё.
PavelIvanov
FishHook
PavelIvanovЗабудьте про джанговский шаблонизатор. Он плохой и он не нужен. Джанга уже умеет jinja2, никакие вот эти вот страдания с тегами не нужны, просто вызываете функцию или метод и всё.
Это конечно хорошо и здорово, но сейчас, к сожалению, есть конкретный проект и этот затык единственный на пути к завершению. И очень не хочется что-то менять на практически завершенном проекте
ZAN
PavelIvanov
Проверьте, используется ли RequestContext (а не Context - это происходит, к примеру, если использовать render_to_response вместо render) и включен ли соотвественный context processor в настройках джанги.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB