有没有办法在我的基本模板中创建全局占位符?我需要它在每个页面上都相同(横幅列表)。我应该怎么做?
有没有办法在我的基本模板中创建全局占位符?我需要它在每个页面上都相同(横幅列表)。我应该怎么做?
我通常在我的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" %}
编辑
如@José L. Patiño在评论中提到,此解决方案仅适用于使用django-cms
< 3.0的用户。对于更新版本,您可以直接使用static_placeholder
模板标签。
show_placeholder
标签正常工作,您的“额外占位符页面”必须在“高级设置”部分下将其 ID 设置为“extra_placeholders”。它无法直接从 slug 中推断出来... - Cerinextra_placeholders
页面中的占位符在前端界面的编辑模式下没有发布。必须进入管理员界面打开该页面并从那里发布页面。这对最终的内容编辑者来说非常令人困惑。有什么建议吗? - toto_tico