7

私はこのようなことを試みます:

{% if request.path == 'contact' %}
    <p>You are in Contact</p>
{% endif %}

{% if request.path == 'shop' %}
    <p>You are in Shop</p>
{% endif %}

なぜそれが機能しないのですか?

4

4 に答える 4

16

デフォルトでは、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"
)

ドキュメントを参照)

django.core.context_processors.requestテンプレートで使用する必要があるため、 settings.pyrequestのリストに追加します。その変数がない場合は、設定します。

于 2013-03-15T15:58:31.303 に答える
5

これを試して:

{% if 'contact' in request.path %}
于 2019-05-26T07:20:24.823 に答える
2

試す:

{% if request.path == '/contact/' %}
    <p>You are in Contact</p>
{% elif request.path == '/shop/' %}
    <p>You are in Shop</p>
{% endif %}
于 2013-03-15T15:48:41.287 に答える
0

1.8settings.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))
于 2015-12-16T11:57:30.960 に答える