Djangoでナビゲーションも、ログインしていなければ非表示にしたい
Djangoのテンプレート内でナビゲーションを表示するか非表示にするかを管理するために、userオブジェクトのis_authenticated属性を使用できます。これはユーザーがログインしている場合にTrueを返し、そうでない場合はFalseを返します。
例えば、ナビゲーションの一部を非表示にする場合は、以下のようにします:
html
<!-- ログインしている場合のナビゲーション -->
{% if user.is_authenticated %}
<ul>
<li><a href="{% url 'tools:index' %}">ホーム</a></li>
<!-- 他のログイン時のナビゲーションアイテムをここに追加 -->
</ul>
{% endif %}
<!-- ログインしていない場合のナビゲーション -->
{% if not user.is_authenticated %}
<ul>
<li><a href="{% url 'tools:signup' %}">サインアップ</a></li>
<li><a href="{% url 'tools:login' %}">ログイン</a></li>
<!-- 他の非ログイン時のナビゲーションアイテムをここに追加 -->
</ul>
{% endif %}
上記のコードでは、user.is_authenticatedの条件によってログインしているかどうかを確認し、その結果に基づいてナビゲーションの一部を表示または非表示にしています。ログインしている場合にはログイン時のナビゲーションアイテムが表示され、ログインしていない場合には非ログイン時のナビゲーションアイテムが表示されます。適宜、必要なナビゲーションアイテムを追加または変更してください。

ディスカッション
コメント一覧
まだ、コメントがありません