【发布时间】:2012-08-14 07:41:31
【问题描述】:
我正在开发一个页脚内容在所有页面之间共享的网站。在 Django-CMS 中最好的方法是什么?
我尝试使用 show_placeholder 标记,但不知何故不起作用。关于我所做的更多细节:
首先,我在 base.html 中有一个 {% placeholder footer_info %}。然后我在 django admin 中添加一个名为“Home”的页面(模板 homepage.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 的模板中,我将其用作页面服务的模板。 但是,主页中的内容未显示在服务页面中。我还尝试在高级选项区域的主页中添加一个 id home_cms_page,这样我就可以像这样在 services.html 中引用它:
{% 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>
然后我在管理员中添加了一个名为“主页”的页面,其中包含一个文本插件和一个 ID 为“home_cms_page”。
以下在我的 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 %}
【问题讨论】:
-
你试过
{% show_placeholder "footer_info" "home_cms_page" %}(带引号)吗? -
是的,我几乎尝试了所有我能想到的东西。有引号,没有引号,有模板名称,有页面ID,仍然没有来自主页的内容显示在服务页面上。我的设置是否不正确?我将占位符 footer_info 放在 base.html 中(不带引号,根据我的实验,我认为引号并不重要),从管理区域向 home_cms_page 中的 footer_info 占位符添加一些内容,然后在我放入的服务模板中上面的sn-p。
-
这是一个多语言网站吗?如果您可以显示整个相关模板,也许会有所帮助...
-
在一个模板中你有
{% placeholder "footer_info" or %}和另一个{% placeholder footer_info %}这应该是不同的东西,也不能从你的帖子中真正看出你是如何在 django 的{% block .... %}中包装你的页脚的。 . -
“某事”不同,你的意思是我需要去掉 base.html 中的引号吗?我已经试过了。如果这不是您的意思,那么我假设您是说它需要具有不同的名称,例如占位符 services_info。我也试过了。另外,我没有将占位符包装在块标记中。
标签: django django-cms