Форум сайта python.su
Ув. сообщество, только начинаю разбираться с Django, пробую создать так сказать “my first app” и столкнулся с проблемой:
Нужно передать текущий url в шаблон. Поиски приводят к одному и тому же -
{{ request.path }}
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.core.context_processors.request', 'django.contrib.messages.context_processors.messages', )
from blog.models import Category from django.shortcuts import render_to_response def navigation(request): category = Category.objects.all().order_by('id') return render_to_response('blog/category.html', {'category':category})
<ul class="nav"> {% for category in category %} <li class="nav_item {% if category.slug in request.path %}active{% endif %}"><a href="/{{ category.slug }}">{{ category.name }}</a></li> {% endfor %} </ul>
Офлайн
https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#id2
context_instance=RequestContext(request)
Офлайн
reclosedevИ так делал тоже(((
context_instance=RequestContext(request)
from django.template import RequestContext .... return render_to_response('blog/category.html', {'category':category}, context_instance=RequestContext(request))
Отредактировано hulygun (Авг. 25, 2012 23:56:07)
Офлайн
Попробуй напрямую указать:
return render_to_response('blog/category.html', {'category':category, 'request': request}, context_instance=RequestContext(request))
Офлайн
barabanshegВсё равно пустой результат. Может я что-то изначально не так делаю? Но request ни в какую в шаблон не передаётся
Попробуй напрямую указать:
Офлайн
Используйте direct_to_template вместо render_to_response. Подключается вот так:
from django.views.generic.simple import direct_to_template def foo(request): return direct_to_template(request, 'index.html')
Отредактировано newca9h (Авг. 26, 2012 11:35:34)
Офлайн
У вас установлен debug_toolbar? Просто по нему сразу можно понять передаете вы что-то в шаблон, или нет, см. аттач
Прикреплённый файлы: request_in_debug_toolbar.png (49,8 KБ)
Офлайн
Блин… нашёл косяк))) Извиняюсь, что по незнанию спрашивал совершенно не то…
Всё работает, если указывать напрямую
{'category':category, 'request': request}
@register.inclusion_tag('blog/category.html') def category(): category = Category.objects.all().order_by('id') return {'category':category}
Офлайн
А что вы потом хотите сделать с этим “тегом”?
Офлайн
в созданном мною приложении есть пакет templatetags с пустым __init__.py и category.py, где собственно и прописан этот тег. В шаблон я его подключаю через {% load category %}{% category %} Категории нормально выводятся но контекст request в шаблон тега не передаётся
Офлайн