Djangoでナビゲーションも、ログインしていなければ非表示にしたい

2024年6月23日

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の条件によってログインしているかどうかを確認し、その結果に基づいてナビゲーションの一部を表示または非表示にしています。ログインしている場合にはログイン時のナビゲーションアイテムが表示され、ログインしていない場合には非ログイン時のナビゲーションアイテムが表示されます。適宜、必要なナビゲーションアイテムを追加または変更してください。

未分類

Posted by ぼっち