Я пытаюсь что-то вроде этого:request.path в шаблоне Джанго
{% if request.path == 'contact' %}
<p>You are in Contact</p>
{% endif %}
{% if request.path == 'shop' %}
<p>You are in Shop</p>
{% endif %}
Почему не работает?
Я пытаюсь что-то вроде этого:request.path в шаблоне Джанго
{% if request.path == 'contact' %}
<p>You are in Contact</p>
{% endif %}
{% if request.path == 'shop' %}
<p>You are in Shop</p>
{% endif %}
Почему не работает?
процессорами шаблон по умолчанию Django являются
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.tz",
"django.contrib.messages.context_processors.messages"
)
(см documentation)
Вы должны django.core.context_processors.request
использовать request
в шаблонах, поэтому добавьте его в этот список в settings.py. Если у вас нет этой переменной, установите ее.
Try:
{% if request.path == '/contact/' %}
<p>You are in Contact</p>
{% elif request.path == '/shop/' %}
<p>You are in Shop</p>
{% endif %}
прежде, чем 1,8 settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
'other.required.processors.names',
'django.core.context_processors.request',
)
views.py (используя className.as_view)
from django.template import *
class className(TemplateView):
template_name = "name.html"
views.py (нормальное использование)
from django.shortcuts import render_to_response
def name(request):
return render_to_response('name.html'{},context_instance=RequestContext(request))
Что находится в настройках TEMPLATE_CONTEXT_PROCESSORS? – Brandon
@Brandon У меня нет этого conf в моих settings.py. Я использую django 1.4.5. Я думаю, что у меня есть настройки по умолчанию. – Emanuel
Попробуйте вывести '{{request.path}}'. – sneawo