0

ヘッダーが含まれる基本テンプレートがあります。ヘッダー インクルードには、以下のコードが含まれています。

しかし、何らかの理由で if ブロックの間に出力が得られないのですが、その理由は何ですか? ps エラーはありません。テンプレート出力の残りの部分は問題なく出力されます。

base.html

<body>
    {% include 'includes/header.html' %}
    {% block sliderWrapper %}{% endblock %}
    {% block titleWrapper %}{% endblock %}
    <div id="wrapper">
        <div class="container">
            {% block mainWrapper %}{% endblock %}
        </div>
    </div>
    {% include 'includes/footer.html' %}
    {% include 'includes/copyright.html' %}
    {% include 'includes/js.html' %}
</body>

以下の{% include 'includes/header.html' %}のコンテンツ....すべてが2つのログイン/ログアウトリンクを示しているわけではありません。それらをブロックから取り出すと、表示されます。どちらのステートメントも if には表示されません

   <div class="span9">
                    <div class="navbar navbar-inverse">
                        <div class="navbar-inner">
                            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                                <span class="icon-bar"></span>
                                <span class="icon-bar"></span>
                                <span class="icon-bar"></span>
                            </a>
                            <div class="nav-collapse collapse">
                                <ul class="nav">
                                    <li><a href="/">Home</a></li>
                                    <li><a href='{% url django.contrib.flatpages.views.flatpage url="how-it-works/" %}'>How does it work?</a></li>
                                    <li><a href='{% url django.contrib.flatpages.views.flatpage url="how-it-works/" %}'>Download</a></li>
                                    <li><a href="/member/registration/">Register</a></li>
                                    {% if user.is_authenticated %}
                                        <li><a href="/member/logout/">Logout</a></li>
                                    {% else % }
                                        <li><a href="/member/login/">Login</a></li>
                                    {% endif %}
                                </ul>
                            </div>
                        </div>
                    </div>

「django.contrib.auth.context_processors.auth」がインストールされ、セッションが有効になっています。

出力{{ user }}すると、例外である AnonymousUser が取得されるため、「else」条件が発生すると想定されますが、どちらの条件も満たされていないようです。

リクエストコンテキストも渡されています...

return render_to_response('pageRegistration.html', context,context_instance=RequestContext(request))
4

1 に答える 1

1

あなたのコードには、気づかれずに通り過ぎた構文エラーがあると思います。

{% else % }

次のようにする必要があります。

{% else %}

Django テンプレート システムはおそらく regex{%...%}を探しますが、それが一致しなかったため、単純に{% if %}{% endif %}ノード内のテキストと見なされました。

于 2012-12-18T19:26:44.753 に答える