2016-03-24 10 views
0

は、特定のテンプレートページ上ベースで何かをしないでください - ジャンゴ

<ul> 
      <li><a href="{% url 'home' %}">Home</a></li> 
      <li><a href="{% url 'about' %}">About</a></li> 
      <li><a href="{% url 'contact' %}">Contact</a></li> 

    {% if user.is_authenticated %} 
     <li><a href="{% url 'auth_logout' %}">Logout</a></li> 

     <li><a href="{% url 'thing_detail' slug=user.thing.slug %}">My Profile</a></li> 

    {% else %} 
     <li><a href="{% url 'auth_login' %}">Login</a></li> 

    <li><a href="{% url 'registration_register' %}">Register</a></li> 
    {% endif %} 
    </ul> 

を次のように私は私のbase.htmlでセットアップ私のナビゲーションバーを持っている今の問題は、私はしたくないくださいということですブロック{%場合%}ユーザーが認証され、私は特定のテンプレートページ、すなわちをレンダリングしていたときに

create_thing.html

{% extends 'layouts/base.html' %} 
{% block title %} Create a Thing 
- {{ block.super }}{% endblock %} 
{% block content %} 
<div id="content"> 
<h1> Create a Thing </h1> 
<form role="form" action="" method="post"> 
{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Submit" /> 
</form> 
</div> 
{% endblock %} 

は単純にコピーされていないときに実行ベースからのコンテンツと削除後に貼り付けることは役に立ちません。これはまだbase.htmlを実行し、if文の内部に入り、create_thing.htmlに詳細を記入するまではスラグが定義されないため、エラーを表示します。

答えて

0

{% if %}句を別の{% if not aux_var %}句にネストしてみてください。最初のifを実行したくない場合は、"aux_var":1をコンテキストとしてレンダラーに渡します。

+0

ここで変数を定義しますか? –

+0

あなたの見解では、 '{{form.as_p}}'のフォームのように渡してください。 –

+1

@felícioありがとうございました。 BTW 2つのif文の代わりに "and"を使用できますか?はいの場合は構文を教えてください。 –

関連する問題