1. ホーム
  2. django

[解決済み] djangoのナビゲーション

2022-05-17 23:01:07

質問

私は、django で最初の小さなウェブアプリケーションを作ったところですが、とても気に入っています。私は古いプロダクション PHP サイトを django に変換することに着手しようとしていて、そのテンプレートの一部として、ナビゲーションバーがあります。

PHP では、テンプレートコードの中で、各ナビゲーションオプションの URL を現在の URL と照らし合わせて、一致したら CSS クラスを適用しています。恐ろしく面倒です。

djangoのために何か良い方法、またはテンプレート内のコードを処理する良い方法はありますか?

手始めに、現在のURLを取得するにはどうしたらいいでしょうか?

どのように解決するのですか?

ナビゲーションをカスタマイズするために、テンプレート継承を使用しています。 例えば

ベース.html

<html>
    <head>...</head>
    <body>
        ...
        {% block nav %}
        <ul id="nav">
            <li>{% block nav-home %}<a href="{% url 'home' %}">Home</a>{% endblock %}</li>
            <li>{% block nav-about %}<a href="{% url 'about' %}">About</a>{% endblock %}</li>
            <li>{% block nav-contact %}<a href="{% url 'contact' %}">Contact</a>{% endblock %}</li>
        </ul>
        {% endblock %}
        ...
    </body>
</html>

about.html

{% extends "base.html" %}

{% block nav-about %}<strong class="nav-active">About</strong>{% endblock %}