4

私がやりたいことは、自分のプロジェクトのベース テンプレート内に django admin ヘッダーを追加することです。管理テンプレートから自分のプロジェクトに base.html をコピーしました。base.html 内に {% block header %} タグを配置して、プロジェクトの独自の基本テンプレート内で呼び出すことはできますか?

{% block header %}
<!-- Header -->
<div id="header">
    <div id="branding">
    {% block branding %}{% endblock %}
    </div>

    {% if user.is_active and user.is_staff %}
    <div id="user-tools">

        {% trans 'Hi,' %}

        <strong>{% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}</strong>.
        {% block userlinks %}
            {% url 'django-admindocs-docroot' as docsroot %}
            {% if docsroot %}
                <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
            {% endif %}
            <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
            <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
        {% endblock %}
    </div>
    {% endif %}
    {% block nav-global %}{% endblock %}
</div>
<!-- END Header -->
{% endblock %}
4

2 に答える 2

0

管理者の「base.html」テンプレートからメイン テンプレートを拡張し、そこから移動することになりました。少し面倒ですが、動作します

于 2012-07-12T03:09:02.540 に答える
0

から拡張されるすべてのテンプレートは、ブロックまたはその祖先をオーバーライドしない限り (パーツを削除することによって)、および'base.html'内にコンテンツを含みます。{% block header %}{% endblock %}{% block header %}...{% endblock %}

から拡張されていないテンプレートがある場合はbase.html、コードを共通のベースに配置するか、インライン タグ包含タグなどを使用できます。

また、認証されたユーザーに対してコードが適切に機能するためにはuser、コンテキストに変数があることを確認する必要があります。通常、変数は既に存在する"django.contrib.auth.context_processors.auth"か、以前に削除した場合は再度有効にする必要があります。ドキュメントを確認してください。

于 2012-06-24T16:28:42.743 に答える