1

私はビューを持っています:

def about(request):
    return render(request, 'about.html', {'page_about_exist':1,})

htmlには次のコードがあります:

<li {% if page_about_exist %} class="active" {% endif %}><a href="{% url about_project %}"> About</a></li>

そのため、Aboutページに移動すると、メニューにアクティブなクラスがあり、視覚的に見ることができます. 辞書なしで他の方法はありますか?私はURLを持っているので

url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login',),

辞書を使った私のやり方は、そこでは見栄えがよくありません。ありがとう。

4

2 に答える 2

1

という独自のテンプレート タグを使用しますifnav

使い方はとても簡単です。それをあなたに追加してINSTALLED_APPS、リクエストコンテキストプロセッサがアクティブになっていることを確認してください。

その後、これを書くことができます:

<li {% ifnav "^/about/" %} class="active" {% endifnav %}><a href="{% url about_project %}"> About</a></li>

現在のプロジェクトでは、ナビゲーションのレンダリングを処理する Django CMS を使用しています。

于 2013-02-13T16:55:29.770 に答える
1

この種のことは、テンプレートの継承で行う必要があります。たとえば、base.html次のようなナビゲーション リストを含めることができます。

<li{% block products %}{% endblock %}><a href...>Products</a></li>
<li{% block about %}{% endblock %}><a href...>About</a></li>

次に、aboutテンプレート(から継承すると仮定base)には次のものがあります。

{% block about %} class="active"{% endblock %}

これは、アクティブなページ用に定義したクラスを使用して、純粋な html としてレンダリングされます。シンプルなテンプレート継承を使用しているため、これを使用して非常に細かい制御を行うこともできます。

于 2013-02-13T16:49:24.603 に答える