3

ブログ用とメイン アプリ用の 2 つのナビゲーション バーを作成しました。インクルード タグを使用して、navbar をテンプレートに導入します。「base.html を拡張」も使用されますが、navbar は base ファイルに含まれておらず、前述のように include タグとして導入されています。

アプリのすべてのページで同じナビゲーションバー(コンテンツ)をレンダリングすることになっているメインアプリではそうではなく、ホームページで目的の結果しか受け取りません。

ナビゲーション バーで使用されるコンテキスト変数は、ホームページ ビュー機能からのものであり、ホームページ ページがレンダリングされると完全に機能しますが、同じアプリの内部ページを開くと、ナビゲーション バーにコンテンツが表示されません。

navbar は、アクティブな (現在開いている) html ページのみのビュー関数のコンテキスト変数をロードしようとするため、navbar が別の html ファイルであっても、ホームページのコンテキスト変数は他のページでは機能しないと思います。

これが正しければ、メイン アプリのすべてのページに同じ navbar 値が表示されるはずなので、それを回避する方法を知りたいと思いました。

home.html - This is how base and navbar are introduced in the template. 
{% extends 'base.html' %}

{% block title %}Title{% endblock title %}
{% block navbar %}{% include 'navbar.html' %}{% endblock navbar%}

同様に、残りのページでは、ベースとナビゲーション バーの両方を紹介します。

たとえば、navbar {% for country in countries %} で使用されるすべてのコンテキスト変数は、ホームページのビュー関数からのものです。

「会社概要」ページに同じナビゲーション バーを使用すると、ナビゲーション バーに必要な情報が表示されません。

それは役に立ちますか?

4

1 に答える 1

0

あなたができる簡単な方法

in base.html

    {% block content %}
    {% endblock %}

    in navbar2.html file
    all html code


in navbar2.html file
        all html code



    other1.html file
    {% extends 'base.html'%}

    {% blck content %}
    {% include 'navbar1.html' %}


    All html code here
    {% endblock %}

other2.html file
        {% extends 'base.html'%}
        {% blck content %}

        {% include 'navbar1.html' %}

        All html code here
        {% endblock %}

コンテキスト変数をすべてのファイルに送信する場合は、base.html にレンダリングするビューを作成し、そのコンテキスト変数を base.html に渡します。base.html は各テンプレートで拡張されるため、すべてのテンプレートでそのコンテキスト変数にアクセスできます。

于 2015-01-08T06:00:46.380 に答える