0

フッター コンテンツがすべてのページで共有されているサイトに取り組んでいます。Django-CMS で行う最善の方法は何ですか?

show_placeholder タグを使ってみたのですが、なぜかうまくいきませんでした。私がしたことについてもう少し詳しく:

まず、base.html に {% placeholder footer_info %} があります。次に、django admin に "Home" (テンプレート ホームページ.html) というページを追加し、テキスト プラグインとして footer_info の下にテキストを配置します。この質問で受け入れられた回答が示唆したように (http://stackoverflow.com/questions/3616745/how-to-render-django-cms-plugin-in-every-page)、

私は追加します

{% placeholder footer_info or %}
{% show_placeholder footer_info "Home" %}
{% endplaceholder %}

ページ サービスのテンプレートとして使用した services.html というテンプレートで。ただし、ホームページのコンテンツがサービス ページに表示されません。また、次のようにservices.htmlで参照できるように、詳細オプション領域のホームページにid home_cms_pageを追加してみました。

{% placeholder footer_info or %}
{% show_placeholder footer_info "home_cms_page" %}
{% endplaceholder %}

しかし、コンテンツはまだ表示されません。

誰かが私が間違っていることを教えてもらえますか? そして、これは他のすべてのページでページからコンテンツを取得する最良の方法ですか (そして、他のすべてのページに show_placeholder を追加する必要があります)?

ありがとうございました


編集:

多言語サイトではありません。'cms.middleware.multilingual.MultilingualURLMiddleware',サイトで使用する言語は英語のみなので、コメントアウトしました。

私はbase.htmlにこれを持っています:

{% load cms_tags sekizai_tags %}

<!-- all the rest of the HTML markups -->

<div class="span4">

{% placeholder footer_info %}

</div>

次に、「ホーム」と呼ばれる管理画面に、テキスト プラグインと「home_cms_page」という ID を持つページを追加しました。

以下は私のservices.htmlにあります:

{% extends "base.html" %}
{% load cms_tags %}

{% block base_content %}
    {% placeholder services_info %}
{% endblock base_content %}

{% block page_content %}
<a href="{% page_url "home_cms_page" %}">Home page</a>
{% endblock page_content %}

{% placeholder "footer_info" or %}
{% show_placeholder "footer_info" "home_cms_page" %}
{% endplaceholder %}
4

1 に答える 1

3

ドキュメントを読む:

参照しているページが正確にわかっている場合は、テンプレートでハードコードされた数値IDではなく、reverse_id(ページに一意の名前を付けるために使用される文字列)を使用することをお勧めします。たとえば、すべてのページにリンクしたり、その一部を表示したりするヘルプページがあるとします。これを行うには、最初に管理インターフェースでヘルプページを開き、フォームの[詳細設定]タブにID(ヘルプなど)を入力します。次に、そのreverse_idを適切なテンプレートタグとともに使用できます。{%show_placeholder "right-column" "help"%}

インデックスページの詳細オプションに「インデックス」を追加{% show_placeholder "banner" "index" %}し、ベーステンプレートに追加しました。それはすべて機能します。

于 2012-11-14T11:30:04.640 に答える