Django-CMS - 全球占位符?

时间:2012-11-13 21:10:20

标签: django placeholder django-cms

有没有办法在我的基本模板中创建全局占位符?我需要在每个页面上都相同(横幅列表)。 我怎么能这样做?

3 个答案:

答案 0 :(得分:11)

我通常在CMS中创建一个未发布的页面,但包含我想在别处使用的占位符(页脚/标题)等。

制作新模板 extra_placeholders.html

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

{% block content %}
    {% placeholder "Banner-List" %}
{% endblock %}

将其添加到您的设置中:

CMS_TEMPLATES = (
    ('my/path/extra_placeholders.html', 'Extra Placeholder Page'),
    ...
)

现在转到管理员并使用您想要的任何插件创建占位符。然后转到您的所有其他网页继承的基本模板( * base.html )并将其添加到您希望占位符显示的任何位置:

{% load cms_tags %}
...
{% show_placeholder "Banner-List" "extra_placeholders" %}

You can read more about it in the docs


修改

正如@JoséL。Patiño在评论中提到的,这个解决方案仅对那些使用django-cms< 3.0。对于较新版本,您只需使用static_placeholder模板标记

即可

答案 1 :(得分:7)

现在有“static_placeholders”,http://docs.django-cms.org/en/latest/reference/templatetags.html#static-placeholder

这听起来像是你需要回来的时候。

答案 2 :(得分:1)

您可以使用以下方法为所有页面创建全局掌上电脑。

  1. 在基页上创建占位符。 {%Placeholder“footer”%}
  2. 通过django cms作为主页制作占位符的内容
  3. 然后为每个占位符页面显示相同内容,添加{%show_placeholder“footer”“home”%},这意味着在主页的前面显示新创建的页脚占位符
  4. 这将在使用该模板的所有页面的主页上显示现有页脚占位符的全部内容。
  5. 但是对于主页会显示两个页脚,对于mengilangkannya,请做修改使用CSS来隐藏主占位符。